sábado, 28 de noviembre de 2015

Controlando un servomotor con un potenciometro 28 Nov 2015

Montaje

Esquematico



/*
 Controlling a servo position using a potentiometer (variable resistor)
 by Michal Rinott 

 modified on 8 Nov 2013
 by Scott Fitzgerald
 http://www.arduino.cc/en/Tutorial/Knob
*/

#include 

Servo myservo;  // create servo object to control a servo

int potpin = 0;  // analog pin used to connect the potentiometer
int val;    // variable to read the value from the analog pin

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop() {
  val = analogRead(potpin);            // reads the value of the potentiometer (value between 0 and 1023)
  val = map(val, 0, 1023, 0, 180);     // scale it to use it with the servo (value between 0 and 180)
  myservo.write(val);                  // sets the servo position according to the scaled value
  delay(15);                           // waits for the servo to get there
}

Control de servo con arduino programa Sweep 28 nov 2015



Montaje con el arduino




Esquemático


/* Sweep
 by BARRAGAN  
 This example code is in the public domain.

 modified 8 Nov 2013
 by Scott Fitzgerald
 http://www.arduino.cc/en/Tutorial/Sweep
*/ 

#include  
 
Servo myservo;  // create servo object to control a servo 
                // twelve servo objects can be created on most boards
 
int pos = 0;    // variable to store the servo position 
 
void setup() 
{ 
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object 

} 
 
void loop() 
{ 
  for(pos = 0; pos <= 180; pos += 30) // goes from 0 degrees to 180 degrees 
  {                                  // in steps of 1 degree 
    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
    delay(500);                       // waits 15ms for the servo to reach the position 
  } 
  for(pos = 180; pos>=0; pos-=30)     // goes from 180 degrees to 0 degrees 
  {                                
    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
    delay(500);                       // waits 15ms for the servo to reach the position 
  } 
} 

sábado, 21 de noviembre de 2015

Lectura de teclado de matriz usando arduino






la configuración de pines es  5,4,3,2,8,7,6
#include 
const byte ROWS = 4; //4 filas
const byte COLS = 3; //tres columnas
char keys[ROWS][COLS] = {{'1','2','3'},{'4','5','6'}, 
{'7','8','9'},{'*','0','#'}};
byte rowPins[ROWS]={5, 4, 3, 2};//conexión de pines arduino a 
//filas del teclado
byte colPins[COLS]={8, 7, 6};//conexión pines arduino a columnas 
//del teclado
Keypad keypad=Keypad(makeKeymap(keys),rowPins,colPins,ROWS,COLS);
void setup()
{
 Serial.begin(9600);//comunicacion serial
 pinMode(13,OUTPUT);
 pinMode(12,OUTPUT);
 pinMode(11,OUTPUT);
}
 
void loop()
{
 char key=keypad.getKey();//instruccion para leer tecla 
 if(key=='1')
 {
   key=keypad.waitForKey();
   if(key=='2')
   {
     key=keypad.waitForKey();
     if(key=='3')
     {
     digitalWrite(13,HIGH);
     }
   }
 } 
 }

Contador de pulsos usando antirebote por software en arduino



El concepto de antirrebote en arduino es detectar el flanco de subida o de bajada en la señal de entrada.

Noten que el pulsador no necesita resitencia por el INPUT_PULLUP


int contador=0,anterior,actual;

void setup() {
  // put your setup code here, to run once:
  pinMode(13,OUTPUT);
  pinMode(7,INPUT_PULLUP);  
  Serial.begin(9600);

  

}

void loop() {
  anterior=digitalRead(7);
  delay(1);
  actual=digitalRead(7);
  if((anterior==0)&&(actual==1))
  {
     digitalWrite(13,HIGH);
     contador=contador+1;
     Serial.println(contador);
     seguro=1;
    
  } 
}

PWM con arduino sabado 21 nov 2015

PWM: Con el PWM en arduino se puede usar para la velocidad de motores CC
Los fabricantes del arduino, trabajan el PWM modificando el voltaje de salida, por medio de modificar el ciclo util de un periodo cuadrado.
los puertos digitales que manejan PWM en arduino som: 11,10,9    6,5,3 y se usa

analogWrite(pin, value) donde


pin: El pin a enviar pwm
value: el ciclo util: entre 0 (apagado) and 255 (encendido).


Descripción del montaje en protoboard





int brillo=200;

void setup() {
  // initialize digital pin 13 as an output.
  pinMode(11, OUTPUT);

}

// the loop function runs over and over again forever
void loop() {
  analogWrite(11,brillo);
  
}


Ahora vamos a incrementar el brillo del led aumentando el valor de brillo

int brillo=0;

void setup() {
  // initialize digital pin 13 as an output.
  pinMode(11, OUTPUT);

}

// the loop function runs over and over again forever
void loop() {
  analogWrite(11,brillo);
  brillo=brillo+5;
  delay(50);
  if (brillo>=255)
  {
    brillo=0;
  }
  
}
Ahora cambiamos el brillo de subida y de bajada


int brillo=0;
int incremento=-5;

void setup() {
  // initialize digital pin 13 as an output.
  pinMode(11, OUTPUT);

}

// the loop function runs over and over again forever
void loop() {
  analogWrite(11,brillo);
 
  
  if ((brillo==0)||(brillo==255))
  {
    incremento=-incremento;
  } 
  brillo=brillo+incremento;
  delay(60);
  
}

miércoles, 18 de noviembre de 2015

Por fin entendi como trabaja el CI 555



Mas informacion de este circuito en el canal de youtube Cambia tu Chip

sábado, 14 de noviembre de 2015

Control de temperatura con rangos usando LCD y LM35


/*
  LiquidCrystal Library - programa de ejemplo
 Demonstramos el uso de un display 16x2 LCD display.  
 The LiquidCrystal library trabaja con todos los displays conpatibles con
 Hitachi HD44780 driver. lo importante es verificar que tenga 16 pines

 
 El circuito:
 * LCD RS pin to digital pin 12
 * LCD Enable pin to digital pin 11
 * LCD D4 pin to digital pin 5
 * LCD D5 pin to digital pin 4
 * LCD D6 pin to digital pin 3
 * LCD D7 pin to digital pin 2
 * LCD R/W pin to ground
 * LCD VSS pin to ground
 * LCD VCC pin to 5V
 * 10K resistor:
 * ends to +5V and ground
 * wiper to LCD VO pin (pin 3)

 
 */

// include the library code:
#include 



int volt;
float vreal,temp;


// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.   
  //lcd.print("Arte Mecatronica!!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  

  volt=analogRead(A0);              // wait for a second
  vreal=volt*0.0048828125;

  lcd.setCursor(5, 1);
  // print the number of seconds since reset:
  //lcd.print(millis() / 1000);
  
  temp=vreal*100;
  lcd.print(temp);
  lcd.print(" grados ");
  
  if(temp>26 && temp<30)
  {
    lcd.setCursor(5, 0);
    lcd.print("normal!!");
  }
  if(temp>30 && temp<33)
  {
    lcd.setCursor(5, 0);
    lcd.print("Alerta!");
  }
  if(temp>33 && temp<36)
  {
    lcd.setCursor(5, 0);
    lcd.print("Critico");
  }
  
  
  delay(100);

}

Manejando Cristal liquido con arduino y mostrando temperatura con el LM35

/* LiquidCrystal Library - programa de ejemplo Demonstramos el uso de un display 16x2 LCD display. The LiquidCrystal library trabaja con todos los displays conpatibles con Hitachi HD44780 driver. lo importante es verificar que tenga 16 pines El circuito: * LCD RS pin to digital pin 12 * LCD Enable pin to digital pin 11 * LCD D4 pin to digital pin 5 * LCD D5 pin to digital pin 4 * LCD D6 pin to digital pin 3 * LCD D7 pin to digital pin 2 * LCD R/W pin to ground * LCD VSS pin to ground * LCD VCC pin to 5V * 10K resistor: * ends to +5V and ground * wiper to LCD VO pin (pin 3) */ // include the library code: #include int volt; float vreal,temp; // initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); // Print a message to the LCD. lcd.print("Arte Mecatronica!!"); } void loop() { // set the cursor to column 0, line 1 // (note: line 1 is the second row, since counting begins with 0): volt=analogRead(A0); // wait for a second vreal=volt*0.0048828125; lcd.setCursor(5, 1); // print the number of seconds since reset: //lcd.print(millis() / 1000); temp=vreal*100; lcd.print(temp); lcd.print(" grados "); delay(100); }

Usando un lcd con arduino

Lectura de temperatura y dos alarmas usando arduino.


lectura de variables analogas con arduino y alarma para tres rangos
  lee el voltaje en la analog in Nalog 0 y lo convierte a valor en voltios.

  Tomamos el volataje y enviamos al analog in A0 , check
  the documentation at http://www.arduino.cc

  This example code is in the public domain.

  modified 14 Nov 2015
  by Carlos Garcia
 */

int volt;
float vreal,temp;



// inicializamos la comunicacion con el puerto serial
void setup() {
  Serial.begin(9600);  
   pinMode(13,OUTPUT);
    pinMode(12,OUTPUT);
     pinMode(11,OUTPUT);
     
}

// the loop function runs over and over again forever
void loop() {
  volt=analogRead(A0);              // wait for a second
  vreal=volt*0.0048828125;
  //Serial.print("Voltaje= ");
  //Serial.println(volt);
  //Serial.print("Voltaje Real= ");
  //Serial.println(vreal);
     temp=100*vreal;
     //Serial.print(temp);
  if(temp>28 && temp<30)
  {
    
  
    Serial.print("alerta uno= ");
    Serial.print(temp);
    Serial.println(" grados centigrados");
    digitalWrite(13,HIGH);
    digitalWrite(12,LOW);
    digitalWrite(11,LOW);
      delay(1000);
  }
  
  if(temp>30 && temp<33)
  {
   
  
    Serial.print("Termperatura= ");
    Serial.print(temp);
    Serial.println(" grados centigrados");
    digitalWrite(13,LOW);
    digitalWrite(12,HIGH);
    digitalWrite(11,LOW);
      delay(1000);
  }
  
  if(temp>33 && temp<36)
  {
   
  
    Serial.print("Alerta2= ");
    Serial.print(temp);
    Serial.println(" grados centigrados");
    digitalWrite(13,LOW);
    digitalWrite(12,LOW);
    digitalWrite(11,HIGH);
      delay(1000);
  }

  
}

Lectura de temperatura utilizando un lm35 usando arduino


El LM35 es un sensor de temperatura con una precisión calibrada de 1 ºC. Su rango de medición abarca desde -55 °C hasta 150 °C.
La salida es lineal y cada grado Celsius equivale a 10 mV, por lo tanto:
 150 ºC = 1500 mV
-55 ºC = -550 mV1

Llega hasta 1.5 voltios en  variables de arduino es aprox 307

mide aprox entre 0 grados y 150 grados centigrados  si necesitara mas rangos necesitaria el SMT36
/*
  lectura de temperatura usando arduino
  lee el voltaje en la analog in Nalog 0 y lo convierte a valor en voltios y en grados centigrados

  Tomamos el volataje y enviamos al analog in A0 , check
  the documentation at http://www.arduino.cc

  This example code is in the public domain.

  modified 14 Nov 2015
  by Carlos Garcia
 */

int volt;
float vreal,temp;



// inicializamos la comunicacion con el puerto serial
void setup() {
  Serial.begin(9600);  
}

// the loop function runs over and over again forever
void loop() {
  volt=analogRead(A0);              // wait for a second
  vreal=volt*0.0048828125;
  //Serial.print("Voltaje= ");
  //Serial.println(volt);
  //Serial.print("Voltaje Real= ");
  //Serial.println(vreal);
  temp=100*vreal;
  Serial.print("Termperatura= ");
  Serial.print(temp);
  Serial.println(" grados centigrados");
  
}

Conversión de la lectura análoga de arduino a voltios

/*
  lectura de variables analogas con arduino
  lee el voltaje en la analog in Nalog 0 y lo convierte a valor en voltios.

  Tomamos el volataje y enviamos al analog in A0 , check
  the documentation at http://www.arduino.cc

  This example code is in the public domain.

  modified 14 Nov 2015
  by Carlos Garcia
 */

int volt;
float vreal;

// inicializamos la comunicacion con el puerto serial
void setup() {
  Serial.begin(9600);
}

// the loop function runs over and over again forever
void loop() {
  volt=analogRead(A0);              // wait for a second
  vreal=volt*0.0048828125;
  Serial.print("Voltaje= ");
  Serial.println(volt);
  Serial.print("Voltaje Real= ");
  Serial.println(vreal);
}

Lectura de un puerto analogo en arduino

La función analogRead de arduino Es muy util en arduino pues permite leer voltajes analogos


/*
  lectura de variables analogas con arduino
  lee el voltaje en la analog in 0.

  Tomamos el volataje y enviamos al analog in A0 , check
  the documentation at http://www.arduino.cc

  This example code is in the public domain.

  modified 14 Nov 2015
  by Carlos Garcia
 */

int volt;

// inicializamos la comunicacion con el puerto serial
void setup() {
  Serial.begin(9600);  
}

// the loop function runs over and over again forever
void loop() {
  volt=analogRead(A0);              // wait for a second
  Serial.print("Voltaje= ");
  Serial.println(volt);
}

sábado, 7 de noviembre de 2015

oportunidad de ingresos con colombialink.net

Colombialink.net el primer sistema de traffic exchange en colombia ver mas en sistema de traffic exchange en colombia

Encender un led con un pulsador en arduino

int pul;

void setup() 
{
  pinMode(13,OUTPUT);
  pinMode(4,INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() 
{
  Serial.print("Pulsador= ");
  Serial.println(pul);
  delay(500);
  pul=digitalRead(4);
  if (pul==0 ) 
  {
    digitalWrite(13,0);
  }
  else
  {
    digitalWrite(13,1);    
  }
}

Popular Posts

Conoce Manizales !!

La intranet de Manizales