jueves, 27 de junio de 2013

Arduino Tutorial 7: El potenciómetro

 Hola buenas hoy quiero presentaros un nuevo elemento, el potenciómetro, y de paso vamos a aprovechar para enseñaros nuevas instrucciones del entorno Arduino

Lo que vamos a conseguir es en la práctica con un destornillador variar la resistencia interna del potenciómetro. En función del valor del potenciómetro vamos a iluminar mas o menos leds. Con esto estamos consiguiendo mandar una variación en la iluminación en función del giro. Antes con el pulsador mándabamos la orden apretando un botón ahora será en función del giro angular q le demos al potenciómetro

Si abrimos el monitor serial vemos como varía la resistencia del potenciómetro. Hacemos clic en Herramientas - Monitor Serial

En este caso el potenciómetro varía de 0 a 680.
Con esto os dejo el vídeo de demostración, espero que os guste.



Os dejo a continuación el código del ejercicio en cursiva con unas breves anotaciones.

Código del texto

int leds[ ]={2,3,4,5,6};
int pot;    //La variable pot es la variable a la que asociaremos el valor del potenciómetro
int n=0;   //Declaramos las variables.
void setup(){
   for(n=0;n<5;n++)
  {
     pinMode(leds[n],OUTPUT);
  }
  Serial.begin(9600);  //Iniciamos la comunicación con el puerto monitor serial 
}


void loop(){
  pot = analogRead(0);
/* Aquí tenemos que recalcar que el valor de la variable pot, lo vamos a identificar con el valor detectado con el puerto analógico A0.Luego tenemos que destacar las opciones serial begin que comienza el monitor serial, y la opción serial print que permite introducir valores. Posteriormente iluminamos mas o menos leds en funcion del valor del potenciometro*/
 
  Serial.print("Valor del potenciometro");
  Serial.print("ohmios: ");
  Serial.print(pot);
  Serial.print("\n\n");
  delay(1000);
 
  if(pot >= 0 && pot <= 150){
    for(n=0;n<1;n++)
       digitalWrite(leds[n],HIGH);
       for(n=1;n<5;n++)
       digitalWrite(leds[n],LOW);
 }
 
if(pot >= 150 && pot <= 300){
    for(n=0;n<2;n++) 
       digitalWrite(leds[n],HIGH);
    for(n=2;n<5;n++)
       digitalWrite(leds[n],LOW);
 } 

if(pot >= 300 && pot <= 450){
    for(n=0;n<3;n++)   
       digitalWrite(leds[n],HIGH);
    for(n=3;n<5;n++)
       digitalWrite(leds[n],LOW);
 } 

 if(pot >= 450 && pot <= 600){
    for(n=0;n<4;n++)  
       digitalWrite(leds[n],HIGH);
    for(n=4;n<5;n++)
       digitalWrite(leds[n],LOW);
 } 

if(pot >= 600){
    for(n=0;n<5;n++) 
       digitalWrite(leds[n],HIGH);
 }

 }

Esto es todo, cualquier duda podeis preguntarla en comentarios y la responderé NOS VEMOSS