efecto del auto fantástico

Efecto del Auto Fantastico Dejar un comentario

Seguramente alguna vez has querido hacer el efecto del auto fantástico con luces leds, en el tutorial de hoy aprenderemos lo sencillo que es hacerlo, y lo haremos con 8 leds y una tarjeta Arduino Uno.

Esta vez haremos uso de vectores, porque queremos hacer un corrimiento de leds, es decir, que la luz de los leds, se desplace a lo largo de la fila de leds. Entonces creamos un vector llamado “led[]” y lo igualamos entre llaves a los pines que serán conectados los leds. Nos quedará de la siguiente forma.

int led[]={2,3,4,5,6,7,8,9};

Dentro de la función void setup, en vez de declarar cada uno de los modos de las variables(OUTPUT INPUT), se ejecutará un bucle for y dentro de este bucle pondremos la instrucción pinMode para que se repita 8 veces, debido a que son 8 los pines que queremos declarar para la salida de los leds, podriamos haber declarado cada uno de los pines pero esta es una buena practica si queremos controlar mas cantidad de pines, y de esta manera estamos optimizando líneas de codigo.

void setup(){
for(int i=0;<8;i++) {
pinMode(led[i],OUTPUT); 
}

Ahora vamos a lo esencial, que es hacer nuestro corrimiento de leds, dentro de la función void loop ejecutamos un bucle for diferente al anterior y dentro de este bucle colocamos la instruccion digitalWrite y un retardo delay para que dure 100 milisegundos y que todo esto se repita 8 veces. Esto hará que se encienda cada uno de los leds desde izquierda a derecha y se mantendrán encendidos indefinidamente.

for(int j=0;j<8;j++) { 
digitalWrite(led[j],HIGH); 
delay(100); 
}

Aun no esta listo!, lo que buscamos es que avanze el encendido de cada uno de los leds de izquierda a derecha, luego se apaguen de derecha a izquierda y se repita este ciclo indefinidamente.

Para ello en el mismo bucle le agregamos otro bucle for diferente al primero dado que esta vez queremos que decremente el contador “k”, que inicie en la posicion k=7(led[7]), que es el ultimo led encendido y que sera nuestro primer led en apagarse, repitiendo este bucle 8 veces o hasta que k=0.  Y finalmente nuestro código quedaría así como se muestra.

Codigo Completo

void setup() {
for(int i=0;i<8;i++)
pinMode(led[i],OUTPUT);
}
void loop() {
for(int j=0;j<8;j++) { 
 digitalWrite(led[j],HIGH); 
 delay(100);
}
for(int k=7;k>=0;k--) {
 digitalWrite(led[k],LOW);
 delay(100);
}
}

Si te gusto este tutorial, ponlo en practica o compártelo con tus amigos para seguir subiendo mas tutoriales como éste. Hasta la próxima.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *