Esta es una ampliación del programa de led parpadeante. Se necesitan los siguientes componentes
- Arduino
- 6 LEDs
- 6 Resistencias de 220 Ohm
- Placa protoboard
- Cableado
Este programa enciende secuencialmente una barra de 6 leds imitando las luces que lucía el coche fantástico en su parrilla.
Los leds deberán encenderse uno a uno de izquierda a derecha, y luego de derecha a izquierda, sucesivamente. Se ha de cumplir con tres condiciones:
1º Siempre tiene que haber al menos un led encendido, para evitar parpadeos molestos. Por ello antes de apagar un led habrá que encender el que le sigue en la secuencia.
2º El programa se ha de realizar usando dos ciclos for, uno para encender los leds en la secuencia de izquierda a derecha, y otro para la secuencia de derecha a izquierda. Para ello es conveniente poner los leds en pines consecutivos.
3º Cada led tiene que estar encendido el mismo tiempo que los demás.
Este es el esquema de conexionado:
(Pregunta al profe una variante con sólo una resistencia)
Pueden añadirse más leds...
Aquí tienes tres versiones diferentes del programa. Comprueba las diferencias de funcionamiento.
//Coche fantastico1 int pin2 = 2; int pin3 = 3; int pin4 = 4; int pin5 = 5; int pin6 = 6; int pin7 = 7; int espera = 70; // El tiempo que se esperara void setup(){ pinMode(pin2, OUTPUT); // Configuración de los PIN como salida pinMode(pin3, OUTPUT); pinMode(pin4, OUTPUT); pinMode(pin5, OUTPUT); pinMode(pin6, OUTPUT); pinMode(pin7, OUTPUT); } void loop() { digitalWrite(pin2, HIGH); // Enciende y apaga secuencialmente los LEDs delay(espera); digitalWrite(pin2, LOW); delay(espera); digitalWrite(pin3, HIGH); delay(espera); digitalWrite(pin3, LOW); delay(espera); digitalWrite(pin4, HIGH); delay(espera); digitalWrite(pin4, LOW); delay(espera); digitalWrite(pin5, HIGH); delay(espera); digitalWrite(pin5, LOW); delay(espera); digitalWrite(pin6, HIGH); delay(espera); digitalWrite(pin6, LOW); delay(espera); digitalWrite(pin7, HIGH); delay(espera); digitalWrite(pin7, LOW); delay(espera); digitalWrite(pin6, HIGH); delay(espera); digitalWrite(pin6, LOW); delay(espera); digitalWrite(pin5, HIGH); delay(espera); digitalWrite(pin5, LOW); delay(espera); digitalWrite(pin4, HIGH); delay(espera); digitalWrite(pin4, LOW); delay(espera); digitalWrite(pin3, HIGH); delay(espera); digitalWrite(pin3, LOW); delay(espera); } |
/* El coche fantástico2*/
int pinArray[] = {2, 3, 4, 5, 6, 7};
int count = 0;
int timer = 15;
//timer marca como queremos que vaya de rápido la ráfaga de encendido-apagado de los LEDS
void setup(){
for (count=0;count<6;count++) {
pinMode(pinArray[count], OUTPUT);
}
}
void loop() {
for (count=0;count<5;count++) {
digitalWrite(pinArray[count], HIGH);
delay(timer);
digitalWrite(pinArray[count + 1], HIGH);
delay(timer);
digitalWrite(pinArray[count], LOW);
delay(timer*2);
}
for (count=5;count>0;count--) {
digitalWrite(pinArray[count], HIGH);
delay(timer);
digitalWrite(pinArray[count - 1], HIGH);
delay(timer);
digitalWrite(pinArray[count], LOW);
delay(timer*2);
}
}
|
//Coche fantastico 3 int pinArray [] = {2, 3, 4, 5, 6, 7}; // PINs int count = 0; // Contador int espera = 30; // Temporizador void setup(){ for (count=0;count<6;count++) { // Configuramos todas los PINs de golpe pinMode(pinArray[count], OUTPUT); } } void loop() { for (count=0;count<5;count++) { // Enciende los LEDs creando una estela visual digitalWrite(pinArray[count], HIGH); delay(espera); digitalWrite(pinArray[count + 1], HIGH); delay(espera); digitalWrite(pinArray[count], LOW); delay(espera*2); } for (count=5;count>0;count--) { digitalWrite(pinArray[count], HIGH); delay(espera); digitalWrite(pinArray[count - 1], HIGH); delay(espera); digitalWrite(pinArray[count], LOW); delay(espera*2); } } |
|
Aquí puedes encontrar esta práctica en Autodesk circuits: https://circuits.io/circuits/2348068-practica-arduino-1-tin1-el-coche-fantastico