modulo RF controlado mediante micro
UNIVERSIDAD MARIANA
FACULTAD DE INGENIERIA
PROGRAMA: TECNOLOGÍA EN AUTOMATIZACIÓN
Asignatura
Semestre
Corte
Docente
Electiva de Profundización 3 – Telecontrol
Nombre laboratorio
Lugar
Fecha
Duración
2
Módulos RF para control de motores controlado por pics.
Laboratorio de Automatización
21 de mayo de 2013
3 horas
Tema
Codificación y Modulación
Sub tema
Modulación Digital- Analógica
Objetivo general
Competencias esperadas
Controlar la dirección de dos motores mediante un enlace de radiofrecuencia controlado por pics.
1
Simular el funcionamiento del circuito.
2
Analizar y observar el funcionamiento de un módulo RF comercial.
3
Identificar los componentes de un sistema de comunicaciones por radiofrecuencia.
4
Realizar aplicaciones con circuitosde radiofrecuencia para el control de procesos.
Procedimiento
1. Se procedió a realizar el montaje de la simulación del circuito en proteus.
En la simulación del circuito se hizo uso de los puertos TX y RX del pic ya que no es posible simular el modulo RF para control.
Programación pic1.
#include
#fuses XT,NOWDT
#use delay(clock=4000000)
#use rs232(baud=9600,xmit=PIN_C6, rcv=PIN_C7)
void main(){
int dato;
while(1){
dato=input_a(); //Recibimos un entero de 8 bits (Puerto B).
putc(dato); //Mandamos el dato por el puerto serial.
delay_ms(100); //Hacemos un retardo
}
}
Programación Pic2.
#include
#fuses XT,NOWDT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8)
#define LCD_DB4 pin_D4
#define LCD_DB5PIN_D5
#define LCD_DB6 PIN_D6
#define LCD_DB7 PIN_D7
#define LCD_RS PIN_D1
#define LCD_RW PIN_D2
#define LCD_E PIN_D0
#include
void main(){
int dato;
lcd_init();
printf(lcd_putc,"MOTOR1 MOTOR2");
printf(lcd_putc,"\n STOP STOP");
while(1){
if(kbhit()){ //Revisamos si hemos recibido algo por el puerto serial.
dato=getc(); //Recibimos un dato de 8 bits
diego:if(dato==0b0000){output_b(0b1111);lcd_putc("\nSTOP STOP");}
if(dato==0b0001){output_b(0b1111);lcd_putc("\nSTOP STOP");}
if(dato==0b0010){output_b(0b1111);lcd_putc("\nSTOP STOP");}
if(dato==0b0011){output_b(0b1111);lcd_putc("\nSTOP STOP");}
if(dato==0b0100){output_b(0b1111);lcd_putc("\nSTOP STOP");}
if(dato==0b0101){output_b(0b1111);lcd_putc("\nSTOP STOP");}if(dato==0b0110){output_b(0b1111);lcd_putc("\nSTOP STOP");}
if(dato==0b0111){output_b(0b1001);lcd_putc("\nIZQ DER");}
if(dato==0b1000){output_b(0b1111);lcd_putc("\nSTOP STOP");}
if(dato==0b1001){output_b(0b1111);lcd_putc("\nSTOP STOP");}
if(dato==0b1010){output_b(0b1111);lcd_putc("\nSTOP STOP");}
if(dato==0b1011){output_b(0b0110);lcd_putc("\nDER IZQ");}if(dato==0b1100){output_b(0b1111);lcd_putc("\nSTOP STOP");}
if(dato==0b1101){output_b(0b0101);lcd_putc("\nIZQ IZQ");}
if(dato==0b1110){output_b(0b1010);lcd_putc("\nDER DER");}
}}
goto diego;
}
2. Procedimiento real para control de los motores a través del módulo RF.
Una vez hecha la simulación, ya se tiene la idea clara de que es lo que queremos realizar y como lo vamos a realizar, para ellorealizamos el siguiente circuito.
En la parte izquierda se observa un circulo rojo lo cual es el punto donde va a localizarse el modulo RF.
Programación real pic1.
#include
#use delay (clock=4000000)
#fuses XT,NOWDT
#use standard_io(A)
#use standard_io(B)
void main(){
diego:if(input_state(PIN_A0)==0&&input_state(PIN_A1)==0&&input_state(PIN_A2)==0&&input_state(PIN_A3)==0){output_b(0b0000);}
if(input_state(PIN_A0)==0&&input_state(PIN_A1)==0&&input_state(PIN_A2)==0&&input_state(PIN_A3)==1){output_b(0b1000);}
if(input_state(PIN_A0)==0&&input_state(PIN_A1)==0&&input_state(PIN_A2)==1&&input_state(PIN_A3)==0){output_b(0b0100);}
if(input_state(PIN_A0)==0&&input_state(PIN_A1)==0&&input_state(PIN_A2)==1&&input_state(PIN_A3)==1){output_b(0b1100);}...
Regístrate para leer el documento completo.