Saltar la navegación

3.- Coche fantástico

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)

conexionado coche fantástico

Pueden añadirse más leds...

esquema coche fantástico

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