miércoles, 8 de diciembre de 2010

EL COCHE FANTASTICO

Alguien me pregunto una vez si sabria hacer las luces delanteras del coche fantastico, pues bien como ya sabeis que me gustan las modificaciones de cacharros y ademas mi otra pasión son los coches, pues ¡¡ala ya esta liada!! lo mezclamos todo y empezamos a modificar los coches tambien, bueno ya hablaremos de eso otro dia, ahora a lo que ibamos las lucecitas dichosas. Tenemos dos opciones como casi todo en esta vida la primera seria comprarlas ya echas que por unos 10 o 15 eurillos se encuentran (http://cgi.ebay.es/Red-48-LED-Knight-Rider-Flash-Strobe-Strip-Light-New-/150524537199?pt=UK_CarsParts_Vehicles_CarParts_SM&hash=item230bf6296f ) o divertirnos un poco y fabricarlas nosotros mismos que es lo mas divertido. 

Bien los materiales que necesitamos son pocos, basicamente los leds del color que queramos, una resistencia por cada led, y el cerebro de la operacion: el pic 16f84a. En este pic le tenemos que cargar el programa que va a hacer funcionar todo y para ello evidentemente vamos a usar un grabador de pics sencillo por ejemplo un TE-20 que anda por aqui, un poco usadillo pero servirá.

Una vez reunidos todos los materiales, nos faltaria el programa del que hablamos antes para poder introducirlo en el pic y hacer que las luces vayan de un lado a otro como las del coche fantastico. Seria este:


#include <16f84A.h>              //Incluyo la libreria para el pic 16f84A
#use delay(clock=4000000)        //Declaro la velocidad de reloj
#fuses XT,NOWDT,NOPUT,NOPROTECT     //Fusibles *ver en documento CSS C
#byte puertob=0x06               //Declaramos la variable puertob en el espacio de memoria
                                 //correspondiente al puerto B


int tdelay=50;                   //Declaro la variable tdelay, y la inicializo con 50ms.
                                 //Aquí podemos setear el retardo y hacerlo generalizado.
int bait=0;                      //Declaro la variable bait y la pongo a 0;
                                
void main()                      //Programa principal
{
set_tris_b(0);                   //Declaro el puerto b como salidas
puertob=0;                       //Inicio el valor del puerto b a 0

do{                              //Instrucción repetitiva, repite
                                 //el siguiente bloque de instrucciones**
                                
                  //Encendemos y apagamos los leds hacia adelante
                 
for (bait=0;bait<=7;bait++)      //Inicializa la variable bait, si es menor o igual que 7
                                 //la incrementa y ejecuta las instrucciones siguientes hasta
                                 //llegar a 7
{
bit_set(puertob,bait);           //Pone a 1 el bit correspondiente a bait en el puerto b
delay_ms(tdelay);                //Retardo en milisegundos, la variable tdelay determina el tiempo.
bit_clear(puertob,bait);         //Pone a 0 el bit correspondiente a bait en el puerto b
              
}

                 //Encendemos y apagamos leds hacia atrás

for (bait=6;bait>0;bait--)       //Inicializa la variable bait, si es mayor que 0
                                 //la decrementa y ejecuta las instrucciones siguientes hasta
                                 //llegar a 7
{
bit_set(puertob,bait);           // Lo mismo que en el bloque anterior
delay_ms(tdelay);
bit_clear(puertob,bait);

}
} while(true);                   //**infinitamente
}                                //Fin de programa principal
y el esquema de todo soldado seria el siguiente:

Bueno espero en unos dias enseñaros uno echo de verdad a ver si me da tiempo y haber si puedo mejorar un poco este para seleccionar la direccion de las luces con un jumper o interruptor o algo asi.

Un Saludo seguidores blogueros.

No hay comentarios:

Publicar un comentario