Programación de Arduino con IF y SWITCH para Secuencias de LEDs
Programa con IF
A continuación se presenta un programa en Arduino que controla nueve LEDs mediante una estructura if. Al presionar un botón, se ejecuta una secuencia de encendido de los LEDs.
int LED1=10;
int LED2=11;
int LED3=2;
int LED4=3;
int LED5=4;
int LED6=5;
int LED7=8;
int LED8=7;
int LED9=6;
int boton=9;
int estado=0;
void setup(){
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
pinMode(LED5,OUTPUT);
pinMode(LED6,OUTPUT);
pinMode(LED7,OUTPUT);
pinMode(LED8,OUTPUT);
pinMode(LED9,OUTPUT);
pinMode(boton,INPUT_PULLUP);
}
void loop(){
int botonpres=digitalRead(boton);
if(botonpres==LOW && estado==0){
estado=1;
digitalWrite(LED3,HIGH);
digitalWrite(LED2,LOW);
digitalWrite(LED1,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
digitalWrite(LED9,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED5,LOW);
delay(1000);
digitalWrite(LED3,LOW);
digitalWrite(LED2,HIGH);
digitalWrite(LED1,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
digitalWrite(LED9,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED5,LOW);
delay(1000);
digitalWrite(LED3,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED1,HIGH);
digitalWrite(LED4,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
digitalWrite(LED9,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED5,LOW);
delay(1000);
digitalWrite(LED3,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED1,LOW);
digitalWrite(LED4,HIGH);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
digitalWrite(LED9,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED5,LOW);
delay(1000);
digitalWrite(LED3,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED1,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED7,HIGH);
digitalWrite(LED8,LOW);
digitalWrite(LED9,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED5,LOW);
delay(500);
digitalWrite(LED3,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED1,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,HIGH);
digitalWrite(LED9,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED5,LOW);
delay(1000);
digitalWrite(LED3,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED1,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
digitalWrite(LED9,HIGH);
digitalWrite(LED6,LOW);
digitalWrite(LED5,LOW);
delay(1000);
digitalWrite(LED3,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED1,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
digitalWrite(LED9,LOW);
digitalWrite(LED6,HIGH);
digitalWrite(LED5,LOW);
delay(1000);
digitalWrite(LED3,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED1,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
digitalWrite(LED9,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED5,HIGH);
delay(1000);
digitalWrite(LED5,LOW);
digitalWrite(LED1, HIGH);
delay(500);
digitalWrite(LED2, HIGH);delay(500);
digitalWrite(LED3, HIGH);delay(500);
digitalWrite(LED4, HIGH);delay(500);
digitalWrite(LED5, HIGH);delay(500);
digitalWrite(LED6, HIGH);delay(500);
digitalWrite(LED7, HIGH);delay(500);
digitalWrite(LED8, HIGH);delay(500);
digitalWrite(LED9, HIGH);delay(500);
}
else if(estado==0){
digitalWrite(LED3,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED1,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
digitalWrite(LED9,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED5,LOW);
}
}
Programa con SWITCH
El siguiente programa enciende los LEDs siguiendo la secuencia 3, 2, 1, 4, 7, 8, 9, 6, 5, utilizando una estructura switch para controlar los estados del programa.
// Programa que enciende LEDs en la secuencia 3,2,1,4,7,8,9,6,5 CON SWITCH
int LED1=10;
int LED2=11;
int LED3=2;
int LED4=3;
int LED5=4;
int LED6=5;
int LED7=8;
int LED8=7;
int LED9=6;
int boton=9;
int estado=0;
void setup(){
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
pinMode(LED5,OUTPUT);
pinMode(LED6,OUTPUT);
pinMode(LED7,OUTPUT);
pinMode(LED8,OUTPUT);
pinMode(LED9,OUTPUT);
pinMode(boton,INPUT_PULLUP);
}
void loop(){
int botonpres=digitalRead(boton);
switch(estado){
case 0:
if(botonpres==LOW){
estado=1;
}else{
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
digitalWrite(LED9,LOW);
}
break;
case 1:
digitalWrite(LED3,HIGH);
delay(1000);
digitalWrite(LED3,LOW);
digitalWrite(LED2,HIGH);
delay(1000);
digitalWrite(LED2,LOW);
digitalWrite(LED1,HIGH);
delay(1000);
digitalWrite(LED1,LOW);
digitalWrite(LED4,HIGH);delay(1000);
digitalWrite(LED4,LOW);
digitalWrite(LED7,HIGH);delay(1000);
digitalWrite(LED7,LOW);
digitalWrite(LED8,HIGH);delay(1000);
digitalWrite(LED8,LOW);
digitalWrite(LED9,HIGH);delay(1000);
digitalWrite(LED9,LOW);
digitalWrite(LED6,HIGH);delay(1000);
digitalWrite(LED6,LOW);
digitalWrite(LED5,HIGH);
digitalWrite(LED5,LOW);
delay(1000);
estado=2;
case 2:
digitalWrite(LED1, HIGH);delay(500);
digitalWrite(LED2, HIGH);delay(500);
digitalWrite(LED3, HIGH);delay(500);
digitalWrite(LED4, HIGH);delay(500);
digitalWrite(LED5, HIGH);delay(500);
digitalWrite(LED6, HIGH);delay(500);
digitalWrite(LED7, HIGH);delay(500);
digitalWrite(LED8, HIGH);delay(500);
digitalWrite(LED9, HIGH);delay(500);
break;
}
}