Você está na página 1de 4

Robles Miranda Jos Eduardo

erobles18uabc.edu.mx

Mexicali, Baja California, Mxico

Comunicacin bidireccional inalmbrica con mdulos RF controlada por Microcontroladores PIC16F84A El siguiente trabajo es una memoria de una prctica de comunicacin inalmbrica con sistemas de RF controlados por un microcontrolador PIC16f84 programado en CCS. Material y equipo: 2 Pic16f84a 2 cristal de cuarzo 4Mhz 4 Capacitores 22pF Programador para PICs Compilador CCS 8 LEDs 8 resistencias 330 8 resistencias 1k 2 resistencias de 1.1M 2 resistencias de 56k 1 pulsador Modulo RF 315Mhz Modulo RF 433Mhz 2 HT12-D 2 HT12-E Fuente de 5v

Robles Miranda Jos Eduardo

erobles18uabc.edu.mx

Mexicali, Baja California, Mxico

Cada circuito esta en modo de espera hasta que se presiona el pulsador, se manda una seal que activa la transmisin de datos inicialmente el dato 1 (0001) hasta el 7 (0111), en este caso solo utilizamos tres bits pero se pueden utilizar los cuatro de requerir ms datos. Cada vez que se presiona el pulsador se aumenta el dato, es decir, transmite el dato 1, despus el 2, 3, 4, 5, 6, 7, 1 y se cicla en ese orden. Los pin A0 hasta A7 tanto del HT12E como del HT12D deben de estar en el mismo orden, es decir, que si se tiene conectados todos estos pin a tierra en el HT12E, en el HT12D tambin se deben conectar todos a tierra, estos definen la direccin del canal con el que se va a trabajar por eso deben de estar sincronizados. En el diagrama no se incluye los componentes adicionales al microcontrolador estos se pueden encontrar en la hoja tcnica, los leds se pueden conectar por medio de una resistencia de 300 a los pin de datos AD8 hasta AD11 para poder visualizar los datos que llegan. El siguiente programa esta compilado en CCS y es el correspondiente a la lgica que se explic anteriormente.

#include <16f84a.h> #FUSES NOWDT #FUSES XT #FUSES NOPUT #FUSES NOPROTECT #use delay(clock=4000000) #BYTE PORTB=6 #BYTE PORTA=5 /////////////////////////////////////////////////////

Robles Miranda Jos Eduardo


//Comunicacin Inlambrica con RF //////////////////////////////////////////////////// VOID MAIN () { set_tris_a(0xFF); set_tris_b(0x00);

erobles18uabc.edu.mx

Mexicali, Baja California, Mxico

output_b(0x00); //Todo el puerto B a cero output_high(PIN_B4);//enable trasmisor off se deshabilita la transmisin delay_ms(500); int x=0; While (TRUE) { If(input(PIN_A4)==1) //S el pulsador es presionado { x++; //Se aumenta una unidad a x //Cada vez que se presiona el pulsador "x" cambia de valor //y entra en cada "If" correspondiente al valor que toma en ese momento If(x==1) { output_low(PIN_B4);//enable trasmisor on se habilita la transmisin output_high(PIN_B0),output_low(PIN_B1), output_low(PIN_B2);//1 delay_ms(1000); output_low(PIN_B0),output_low(PIN_B1), output_low(PIN_B2); delay_ms(200); output_high(PIN_B4);//enable trasmisor off se deshabilita la transmisin delay_ms(200); } If(x==2) { output_low(PIN_B4);//enable trasmisor on output_low(PIN_B0),output_high(PIN_B1), output_low(PIN_B2);//2 delay_ms(1000); output_low(PIN_B0),output_low(PIN_B1), output_low(PIN_B2); delay_ms(200); output_high(PIN_B4);//enable trasmisor off delay_ms(200); } If(x==3) { output_low(PIN_B4);//enable trasmisor on output_high(PIN_B0),output_high(PIN_B1), output_low(PIN_B2);//3 delay_ms(1000); output_low(PIN_B0),output_low(PIN_B1), output_low(PIN_B2); delay_ms(200); output_high(PIN_B4);//enable trasmisor off delay_ms(200); } If(x==4) { output_low(PIN_B4);//enable trasmisor on output_low(PIN_B0),output_low(PIN_B1), output_high(PIN_B2);//4 delay_ms(1000); output_low(PIN_B0),output_low(PIN_B1), output_low(PIN_B2); delay_ms(200); output_high(PIN_B4);//enable trasmisor off delay_ms(200); } If(x==5) { output_low(PIN_B4);//enable trasmisor on output_high(PIN_B0),output_low(PIN_B1), output_high(PIN_B2);//5 delay_ms(1000); output_low(PIN_B0),output_low(PIN_B1), output_low(PIN_B2); delay_ms(200); output_high(PIN_B4);//enable trasmisor off delay_ms(200); } If(x==6) { output_low(PIN_B4);//enable trasmisor on output_low(PIN_B0),output_high(PIN_B1), output_high(PIN_B2);//6 delay_ms(1000); output_low(PIN_B0),output_low(PIN_B1), output_low(PIN_B2); delay_ms(200);

Robles Miranda Jos Eduardo


output_high(PIN_B4);//enable trasmisor off delay_ms(200); }

erobles18uabc.edu.mx

Mexicali, Baja California, Mxico

If(x==7) { output_low(PIN_B4);//enable trasmisor on output_high(PIN_B0),output_high(PIN_B1), output_high(PIN_B2);//7 delay_ms(1000); output_low(PIN_B0),output_low(PIN_B1), output_low(PIN_B2); delay_ms(200); output_high(PIN_B4);//enable trasmisor off delay_ms(200); x=0; } } Else { output_low(PIN_B0),output_low(PIN_B1), output_low(PIN_B2); } } }

Você também pode gostar