domingo, 25 de diciembre de 2016

Programado con arduino - 3 leds y potenciometro

Al girar el potenciometro en un sentido, se encienden los leds uno a uno, y cuando se gira en sentido contrario se van apagando los leds uno a uno. Haga click en imagen para agrandarla y observar las conexiones.





Programación en Arduino

const int led1 = 4; //Led conectado al pin4
const int led2 = 3; //Led conectado al pin3
const int led3 = 2; //Led conectado al pin2
const int pot = 0; // el pot está conectado al pinA0

int brillo=0; // variable para el brillo
int xtemp=0;
int xop=1;


void setup() {
  Serial.begin(9600);
  pinMode(led1, OUTPUT); // declaramos el led como salida
  pinMode(led2, OUTPUT); // declaramos el led como salida
  pinMode(led3, OUTPUT); // declaramos el led como salida
  /* Los pin analógicos  declaran como entrada automáticamente */
}

void loop() {
  /* Leemos el valor del potenciometro divididos entre 4 ya que 
  solo se pueden usar valores entre 0 y 255 en analog Write  */
  brillo = analogRead(pot)/4;
  /*AnalagoWrite recibe dos valores, el pin a usar y la intensidad del voltaje los valores de 
  voltaje van de 0  a 255 */
  Serial.println(brillo);
  Serial.println(xop);
  Serial.println(xtemp);

  if (xtemp<=brillo)
  {
      xop=1; //incrementa
  }
  else
  {
    xop=2; //decrementa
  }

  xtemp= brillo;

  if (xop==1){

      if (brillo>0 && brillo<100){    
          digitalWrite(led1,1);
      }
      else if (brillo>=100 && brillo<200)  
      {
          digitalWrite(led2,1);
      }
      else if (brillo>=200)  
      {
          digitalWrite(led3,1);  
      }

  }else{          
 
      if (brillo>=0 && brillo<100){      
         digitalWrite(led1,0);
         digitalWrite(led2,0);      
      }
      else if (brillo>=100 && brillo<200)  
      {
        digitalWrite(led2,0);
        digitalWrite(led3,0);      
      }
      else if (brillo<=225)  
      {
        digitalWrite(led3,0);              
      }  
  }

}

No hay comentarios.:

Publicar un comentario