Secuencia de leds con pulsador.
Se trata de encender y apagar 4 leds secuencialmente al accionar un pulsador. El pulsador debe estar
conectado al pin 4, y los leds a los pines 0,1,2,3.
Se deben encender y posteriormente apagar los leds desde el pin 0 al 3, con un tiempo de duración de
encendido y apagado de 150 milisegundos.
Nota: la secuencia principal del programa debe estar reproducida en una función a la que llamará el
programa principal.
Objetivos:
Familiarizarse con el entorno de programación.
Aprender a conectar una entrada digital a arduino (pulsador).
Aprender a declarar variables tipo lista de valores.
Aprender a declarar una función y llamarla cuando sea necesario.
Conocer órdenes como: digitalRead.
Conocer órdenes de control de programa como: If.
Hecho con Fritzing
Solución:
int leds[]={0,1,2,3};
int pulsador=4;
int tiempo=150;
int n=0;
void setup() {
for(n=0;n<3;n++) {
pinMode (leds[n],OUTPUT);
}
pinMode (pulsador,INPUT);
}
void flash() {
for (n=0;n<3;n++) {
digitalWrite (leds[n],HIGH);
delay (tiempo);
digitalWrite (leds[n],LOW);
delay (tiempo);
}
}
void loop() {
if (digitalRead(pulsador)==HIGH) {
flash ();
}
}
Otra Solución
int leds[]={0,1,2,3};
int tiempo=150;
int pulsador=4;
int n=0;
int valorpulsador=0;
void setup(){
for(n=0;n<3;n++){
pinMode(leds[n],OUTPUT);
}
pinMode(pulsador,INPUT);
Serial.begin(9600);
}
void monitoriza(){
Serial.print("El valor del pulsador es ...");
Serial.println(valorpulsador);
delay(1000);
}
void secuencia(){
for(n=0;n<4;n++){
digitalWrite(leds[n],HIGH);
delay(tiempo);
digitalWrite(leds[n],LOW);
delay(tiempo);
}
}
void loop(){
valorpulsador=digitalRead(pulsador);
monitoriza();
if (valorpulsador==1){
secuencia();
}
}