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