jueves, 22 de diciembre de 2011

TRANSMISOR DE DATOS - PROYECTO FINAL - FERRARA

   Explicación:

   É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: