- 6 LEDS
- 6 Resistencias de 220 ohmios
- Placa Protoboard o en su defecto cable y soldador
- Cables para realizar las conexiones
Una vez conectados los LEDS procederemos a programar nuestro arduino para que haga la secuencia del tan conocido <Kitt>. El programa lo podemos hacer de varias formas posibles, nosotros vamos a proponer dos formas de hacerlo.
La primera de ellas y mas sencilla, se basa en mandar señales de 1 y 0 a las diferentes señales en orden de conexión En el primer proyecto ya habíamos visto como enviar estas señales. Para los que no lo hayan leído aun se hace mediante la sentencia digitalWrite(elnumerodePIN,HIGH). Una vez dicho esto, el código seria el siguiente:
/* El coche fantástico 1
* ---------------------
*
*/
int timer=200; //Declaramos la variable timer como el retraso entre un parpadeo y otro, se mide en ms.
void setup(){
pinMode(2, OUTPUT); // Configuración de los PIN-es como salida
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}
void loop() {
digitalWrite(2, HIGH); // Enciende y apaga secuencialmente LED-s
delay(timer);
digitalWrite(2, LOW);
delay(timer);
digitalWrite(3, HIGH);
delay(timer);
digitalWrite(3, LOW);
delay(timer);
digitalWrite(4, HIGH);
delay(timer);
digitalWrite(4, LOW);
delay(timer);
digitalWrite(5, HIGH);
delay(timer);
digitalWrite(5, LOW);
delay(timer);
digitalWrite(6, HIGH);
delay(timer);
digitalWrite(6, LOW);
delay(timer);
digitalWrite(7, HIGH);
delay(timer);
digitalWrite(7, LOW);
delay(timer);
digitalWrite(6, HIGH);
delay(timer);
digitalWrite(6, LOW);
delay(timer);
digitalWrite(5, HIGH);
delay(timer);
digitalWrite(5, LOW);
delay(timer);
digitalWrite(4, HIGH);
delay(timer);
digitalWrite(4, LOW);
delay(timer);
digitalWrite(3, HIGH);
delay(timer);
digitalWrite(3, LOW);
delay(timer);
}
Por otra parte, la segunda forma de enmarcar este ejercicio seria empleando una secuencia de control for.El código seria el siguiente:
/* El coche fantástico 2
* ---------------------
*/
int pinArray[] = {2, 3, 4, 5, 6, 7}; // Define el array de pines
int count = 0; // Contador
int timer = 100; // Temporizador
void setup(){
for (count=0;count<6;count++){ // Configuramos todos los PIN-es
pinMode(pinArray[count], OUTPUT);
}
}
void loop() { // Enciende y apaga secuencialmente los LED-s
for (count=0;count<6;count++) { // utilizando la secuencia de control for(;;)
digitalWrite(pinArray[count], HIGH); // Recorrido de ida
delay(timer);
digitalWrite(pinArray[count], LOW);
delay(timer);
}
for (count=5;count>=0;count--) {
digitalWrite(pinArray[count], HIGH); // Recorrido de vuelta
delay(timer);
digitalWrite(pinArray[count], LOW);
delay(timer);
}
}
Bueno hasta aquí el segundo proyecto de Arduin0project, próximamente desarrollaremos el siguiente . Si queréis estar informados vía twitter suscribete! Saludos.
Video de comprobación:
ResponderEliminarhttp://www.youtube.com/watch?v=LDKZ6Zmqb-w
Excelente proyecto.
ResponderEliminarPodría mejorarse si en vez de salidas digitales modularas la intensidad de luz con una señal PWM.Con eso lograrías este efecto http://www.mykitt.de/includes/video_show.php?videoid=31
Muy buen aporte.
Saludos