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
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.