Éste proyecto final consiste basicamente de 4 entradas conectadas a un microcontrolador unidas por transmicion Tx-Rx por medio de cables. Por un lado, tendremos la placa del Transmisor (Tx) con 4 pulsadores y por otro lado la del Receptor (Rx) con 8 leds.
El Tx estará revisando las entradas todo el tiempo y cuando detecte que se ha presionado una de ellas se manda un dato.
El Rx lo que hará es recibir este dato y ejecutar una secuencia distinta para cada entrada con cada uno de los leds.
La entrada A prenderá el 1er led y lo dejará encendido, instantaneamente prenderá el 2do led y también quedará encendido. Este proceso se repetirá hasta completar con los 8 leds.
La entrada B prende el 1er led y lo se apaga. En ese mismo instante en que se apaga el 1er led se prende el 2do y luego esta misma secuencia se repite hasta llegar al 8vo led.
La entrada C prenderá los leds número 1, 3, 5, 7. Mientras que los demas quedarán apagados.
Y por último, la entrada D es la que INVERTE cualquiera de las secuencias anteriores.
Circuito Eléctrico:
TX:
RX:
Programa:
TX:
#include <transmisor.h>
void main()
{
while (1)
{
if (input (B_A) == 0)
{
delay_ms (500);
printf ("A");
}
if (input (B_B) == 0)
{
delay_ms (500);
printf ("B");
}
if (input (B_C) == 0)
{
delay_ms (500);
printf ("C");
}
if (input (B_D) == 0)
{
delay_ms (500);
printf ("D");
}
}
}
RX:
#include <Receptor.h>
char entrada;
void main()
{
while (1)
{
entrada = getch();
if (entrada == 'A')
{
output_bit (PIN_B0, 1);
delay_ms (200);
output_bit (PIN_B1, 1);
delay_ms (200);
output_bit (PIN_B2, 1);
delay_ms (200);
output_bit (PIN_B3, 1);
delay_ms (200);
output_bit (PIN_B4, 1);
delay_ms (200);
output_bit (PIN_B5, 1);
delay_ms (200);
output_bit (PIN_B6, 1);
delay_ms (200);
output_bit (PIN_B7, 1);
delay_ms (200);
}
if (entrada == 'B')
{
output_bit (PIN_B0, 1);
delay_ms (200);
output_bit (PIN_B0, 0);
output_bit (PIN_B1, 1);
delay_ms (200);
output_bit (PIN_B1, 0);
output_bit (PIN_B2, 1);
delay_ms (200);
output_bit (PIN_B2, 0);
output_bit (PIN_B3, 1);
delay_ms (200);
output_bit (PIN_B3, 0);
output_bit (PIN_B4, 1);
delay_ms (200);
output_bit (PIN_B4, 0);
output_bit (PIN_B5, 1);
delay_ms (200);
output_bit (PIN_B5, 0);
output_bit (PIN_B6, 1);
delay_ms (200);
output_bit (PIN_B6, 0);
output_bit (PIN_B7, 1);
delay_ms (200);
output_bit (PIN_B7, 0);
}
if (entrada == 'C')
{
output_bit (PIN_B0, 1);
output_bit (PIN_B2, 1);
output_bit (PIN_B4, 1);
output_bit (PIN_B6, 1);
}
if (entrada == 'D')
{
output_toggle(PIN_B0);
output_toggle(PIN_B1);
output_toggle(PIN_B2);
output_toggle(PIN_B3);
output_toggle(PIN_B4);
output_toggle(PIN_B5);
output_toggle(PIN_B6);
output_toggle(PIN_B7);
}
}
}
Diseño el Protel:
TX:
Elementos a utilizar:
No hay comentarios:
Publicar un comentario