lunes, 19 de septiembre de 2011

Segundo Proyecto[Coche fantastico]

Bueno, poco a poco vamos avanzando en materia y en este segundo proyecto vamos a imitar las luces del conocido coche fantástico. Para este proyecto vamos a necesitar los siguientes materiales:

  • 6 LEDS
  • 6 Resistencias de 220 ohmios
  • Placa Protoboard o en su defecto cable y soldador
  • Cables para realizar las conexiones
Los LEDS los conectaremos a los PIN de nuestro arduino desde la posición 2 a la 7 de la salida digital mediante la resistencias de 220 Ohmios(no son imprescindibles). El esquema eléctrico seria el siguiente:
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.

2 comentarios:

  1. Video de comprobación:

    http://www.youtube.com/watch?v=LDKZ6Zmqb-w

    ResponderEliminar
  2. Excelente proyecto.
    Podrí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

    ResponderEliminar