Vous êtes sur la page 1sur 20

DEPARTAMENTO DE ELCTRICA Y ELECTRNICA

CARRERA DE INGENIERA ELECTRNICA Y


TELECOMUNICACIONES

ASIGNATURA MICROCONTROLADORES

PROYECTO FINAL
TEMA: CARRO CONTROLADO POR RADIO FRECUENCIA
Profesor: Ing. Danny Sotomayor

INTEGRANTES
Angelo Rodrguez
Guillermo Rodrguez

SANGOLQU 07-08-2014

1.

TEMA: Carro controlado por radio frecuencia

2. OBJETIVO(S)
2.1.
Control de giro de un carro y velocidad con pwm (modulacin de ancho de pulso),
a travs de mdulos RF(radio frecuencia ).
2.2.

Especficos
Aplicar los conocimientos adquiridos sobre el PWM
Determinar el alcance mximo de la comunicacin por radio frecuencia.
Realizar un programa tal que pueda enviar y receptar datos binarios para el
control de giro y velocidad del carro
3. MARCO TEORICO

GRAFICO 1: MODULOS TRANSMISOR Y RECEPTOR RF

DATOS DE FBRICA
Voltaje de funcionamiento: 3-12v
Frecuencia de funcionamiento: 315, mhz 433.92( otras frecuencias puede ser personalizado)
Corriente de espera: 0ma
Actual: 20-28ma
La distancia de transmisin:> 500m( abierto a recibir sensibilidad at-103dbm por encima de junta
distancia)
Potencia de salida: dbm 16( 40mw)
Tasa de transferencia:< 10kbps

CODIFICADOR PARA EL TRANSMISOR


Transmisin
Estos circuitos sencillos se puede usar para controlar una gran cantidad de aplicaciones, desde
autos y barcos radiocontrolados hasta apertura de portones de garages, alarmas de autos,
adquisicin de datos, robtica, entre muchas otras cosas.
La parte de radiofrecuencia de este circuito se basa en los transmisores baratos WenShing TWSBS-X, que transmiten via ASK y los receptores RWS-X-X (ver ms informacin de
los transmisores y de los Receptores). Suelen costar menos de 10 dlares cada uno, y con una
buena antena y buena sintonizacin pueden llegar facilmente a los 50 metros de distancia.
La parte de codificacin se basa en los integrados HT12E (codificador) y HT12D (decodificador),
que permiten enviar hasta 4 bits de datos y 8 de direccin (por lo que sera posible transmitir a
hasta 256 dispositivos en la misma frecuencia)

GRAFICO 2: CODIFICADOR DEL MODULO TRANSMISOR DE RF

DECODIFICADOR PARA EL RECEPTOR


Recepcin
Las patas 1 a 8 eligen la direccin (que tendra que ser igual en el transmisor y receptor para lograr
comunicacin), las patas 10 a 13 son los datos que se desean enviar, la pata 14 controla el envo
(al dejarla en estado bajo transmite, es posible dejarla en 0 para que transmita continuamente), la
patas 15 y 16 necesita ser conectada a una resistencia de 1 Megaohm para generar la seal de
clock interna, la pata 17 es la salida de datos, que debe ser conectada al mdulo de transmisin.

Nuevamente, las patas 1 a 8 eligen la direccin (que tendra que ser igual en el transmisor y
receptor para lograr comunicacin), las patas 10 a 13 son los datos recibidos (pueden ser
conectados a LEDs o cargas siempre que la corriente no supere 5mA), la pata 14 deber ser
conectada a la salida del mdulo de recepcin de RF, las patas 15 y 16 necesitan ser conectadas a
una resistencia de 47 Kilohm para generar la seal de clock interna, la pata 17 dice si la recepcin
fue correcta o no.

GRAFICO 3: DECODIFICADOR DEL MODULO RECEPTOR DE RF

CONEXIN ENTRE MDULO TRANSMISOR CON CODIFICADOR


DECODIFICADOR

4. DIAGRAMA DE BLOQUES

5. VALOR DE LOS REGISTROS DE CONFIGURACIN:

PR2=.255
TRISC= .0 (Pin C1 como salida)
CCPR2L = .0
CCP2CON=0XCH
T2CON = 0x06H

Y RECEPTOR CON

6. DIAGRAMA ELECTRNICO.

7. CLCULOS
Periodo PWM
PWM = [(PR2+1)*4T*(TMR2 Prescale Value)
PWM = (255+1)*1us*16
PWM= 4096us = 4ms
PWM DUTY CITE
PWMDC=(CCPR2L:CCPICON<5:4>)* TOSC*(TMR2 PRESCALE VALUE)
PWMDC = 1*0,25*16
PWMDC = 4us

8. DIAGRAMA DE FLUJO:

Transmisor:

Receptor:

9. PROGRAMA:
TRANSMISOR
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
LIST
P=16F84A
INCLUDE <P16F84A.INC>

ORG

RADIX
00H

HEX

;____________________________CONFIGURACIN______________________________________
________________
CONFI
BSF
STATUS,RP0
;Banco1
MOVLW
.255
MOVWF TRISB
;Puerto B teclado
MOVLW .0
MOVWF TRISA
BCF
OPTION_REG,7 ;Conecta todas las resistencias Pull-Up
BCF
STATUS,RP0
;Banco 0
CLRF
PORTB
CLRF
PORTA

;_________________________________MAIN___________________________________________
________
INICIO
BSF
PORTA,0
BSF
PORTA,1
BSF
PORTA,2
BSF
PORTA,3
ADELANTE
BTFSC
GOTO

PORTB,0
ATRAS

BSF
BSF
BSF
BCF

PORTA,0
PORTA,1
PORTA,2
PORTA,3

ATRAS

BTFSC

PORTB,1

GOTO
BSF
BSF
BCF
BSF

DERECHA
PORTA,0
PORTA,1
PORTA,2
PORTA,3

DERECHA
BTFSC
GOTO
BSF
BCF
BSF
BSF

PORTB,2
IZQUIERDA
PORTA,0
PORTA,1
PORTA,2
PORTA,3

IZQUIERDA

BTFSC
GOTO
BCF
BSF
BSF
BSF

PORTB,3
VELOCIDAD_MAX
PORTA,0
PORTA,1
PORTA,2
PORTA,3

VELOCIDAD_MAX
BTFSC
GOTO
BSF
BSF
BCF
BCF

PORTB,4
VELOCIDAD_MIN
PORTA,0
PORTA,1
PORTA,2
PORTA,3

VELOCIDAD_MIN
BTFSC
GOTO
BCF
BCF

PORTB,5
CONTINUAR
PORTA,0
PORTA,1

BCF
BSF

PORTA,2
PORTA,3

CONTINUAR
BTFSC
GOTO
BSF
BSF
BSF
BSF

PORTB,6
DETENER
PORTA,0
PORTA,1
PORTA,2
PORTA,3

DETENER
BTFSC
GOTO
BCF
BCF
BCF
BCF

PORTB,7
ADELANTE
PORTA,0
PORTA,1
PORTA,2
PORTA,3

GOTO INICIO
END

RECEPTOR
List

p=16f877a;tipo de procesador
INCLUDE
"P16F877A.Inc"; librerias del registro del pic
__CONFIG(0x3f71);Grabar desde el Programa del PICKIT
DATO

EQU 20H

;Define constantes para 20 milisegundos


CONTADOR
EQU 0x1A
CONTADOR1
EQU 0x0
CONT1 EQU 0x20
CONT2 EQU 0x21
;Define constante para mascara 0xFF (tecla pulsada)
MASQ EQU 22H
DATO1 EQU 23H
N
EQU
24H
M
EQU
25H
CONTA EQU
26H

ORG

00H

;____________________________CONFIGURACIN____________________________
CONFI
CLRF
STATUS
BSF
STATUS,RP0
;Banco1
MOVLW
.255
MOVWF TRISB
;Puerto B teclado
MOVLW .0
MOVWF TRISC
MOVLW .0
MOVWF TRISD
BCF
OPTION_REG,7 ;Conecta todas las resistencias Pull-Up
BCF
STATUS,RP0
;Banco 0
CALL
INICIA_PWM
CLRF
PORTC
CLRF
PORTB
CLRF
PORTD
;_________________________________MAIN_________________________________
INICIO
MOVLW .0
MOVWF CCPR2L
VELOCIDAD

LOOP
MOVLW
0xFF
MOVWF
MASQ
CALL
DETECTAR
SUBWF MASQ,1
BTFSS STATUS,Z
GOTO LOOP
BTFSC PORTB,6
GOTO INC
BTFSS
CALL
BTFSS
CALL
BTFSC
CALL

PORTB,7
ADELANTE
PORTB,6
ADELANTE
PORTB,5
ADELANTE

;Almacena en W la mascara 0xFF


;Almacena en masq la mascara 0xFF
;Llama a la subtutina detect
;Resultado en W=0
;Repite el proceso

BTFSC

INC

PORTB,4

GOTO LOOP
INCFSZ CCPR2L,1
GOTO LOOP

;Incremento Dutty Cicle

RETURN

VELOCIDAD_MIN
LOOP1
MOVLW
0xFF
MOVWF
MASQ
CALL
DETECTAR
SUBWF MASQ,1
BTFSS STATUS,Z
GOTO LOOP1
BTFSS PORTB,6
GOTO DEC

;
;
;
;
;

BTFSS
GOTO
BTFSS
GOTO
BTFSC
GOTO
BTFSC
GOTO

PORTB,7
ADELANTE
PORTB,6
ADELANTE
PORTB,5
ADELANTE
PORTB,4
ADELANTE

MOVF
BTFSS
GOTO

DATO,0
PORTB,7
DEC

BTFSS
GOTO
BTFSS
GOTO

PORTB,7
ADELANTE
PORTB,6
ADELANTE

GOTO

LOOP1

;Almacena en W la mascara 0xFF


;Almacena en masq la mascara 0xFF
;Llama a la subtutina detect
;Resultado en W=0
;Repite el proceso

DEC

DECFSZ CCPR2L,1
GOTO LOOP1
GOTO DEC

;Incremento Dutty Cicle

RETURN
;___________________________________PWM_________________________________________
_______
INICIA_PWM
BSF
STATUS,RP0
MOVLW .255
MOVWF PR2
;Establece periodo del PWM
BCF
TRISC,1
;Pin C1 como salida
BCF
STATUS,RP0
CLRF
CCPR2L
MOVLW 0CH
MOVWF CCP2CON
MOVLW 06H
MOVWF T2CON
RETURN

;inicializa Ciclo de Trabajo en cero

;Habilita Timer 2

;__________________________________TECLADO_______________________________________
_______
DETECTAR
CLRF
BTFSS
GOTO
BTFSS
GOTO
BTFSS
GOTO
BTFSS
GOTO
RETLW

PORTB
PORTB,7
REBOTE
PORTB,6
REBOTE
PORTB,5
REBOTE
PORTB,4
REBOTE
0x0

CALL
BTFSS
RETLW
BTFSS
RETLW
BTFSS
RETLW
BTFSS
RETLW

DELAY_100ms
PORTB,7
0xFF
PORTB,6
0xFF
PORTB,5
0xFF
PORTB,4
0xFF

;activa las cuatro filas


;lee rengln 1,2,3,A
;si tecla presionada limpia rebote
;lee rengln 4,5,6,B
;si tecla presionada limpia rebote
;lee rengln 7,8,9,C
;si tecla presionada limpia rebote
;lee rengln *,0,#,D
;si tecla presionada limpia rebote
;no hubo tecla presionada retorna con w=0

REBOTE
;pausa de 20 milisegundos
;lee rengln 1,2,3,A
;tecla presionada, retorna con w=0xFF
;lee rengln 4,5,6
;tecla presionada, retorna con w=0xFF
;lee rengln 7,8,9
;tecla presionada, retorna con w=0xFF
;lee rengln *,0,#
;tecla presionada, retorna con w=0xFF

RETLW 0x0

;falsa alarma retorna con w=0

DELAY_100ms
MOVLW
MOVWF

REP1
REP2

.100
CONT1

;(1) Carga dato N


;(1) inicializa contador1 ciclo externo
MOVLW
.250
;(1) Carga dato M
MOVWF
CONT2
;(1) inicializa contador2 ciclo interno
DECFSZ CONT2,1
;(1,2)Decrementa contador2 y escapa si cero
GOTO REP2
;(2) si no es cero, repite ciclo interno
DECFSZ CONT1,1
;(1,2)Decrementa contador1 y escapa si cero
GOTO REP1
;(2) si no es cero repite ciclo externo
RETURN

;(2) regresa de esta subrutina

;________________________________________________________________________________
______

ADELANTE
BTFSC
GOTO
BTFSC
GOTO
BTFSC
GOTO

PORTB,7
ADELANTE1
PORTB,6
ADELANTE1
PORTB,5
ADELANTE1

CALL

VELOCIDAD_MIN

BTFSS
GOTO
BTFSS
GOTO
BTFSC
GOTO
BTFSC
GOTO

PORTB,7
ADELANTE2
PORTB,6
ADELANTE2
PORTB,5
ADELANTE2
PORTB,4
ADELANTE2

ADELANTE1

CALL

VELOCIDAD

BTFSC
GOTO
BTFSS
GOTO
BTFSS
GOTO
BTFSS
GOTO

PORTB,7
ATRAS
PORTB,6
ATRAS
PORTB,5
ATRAS
PORTB,4
ATRAS

ADELANTE2

;--------------ATRAS...ADELANTE----BCF
BSF
BCF
BSF

PORTC,2
PORTC,3
PORTC,4
PORTC,5

ATRAS
BCF
BCF

PORTD,7
PORTD,6

BTFSC
GOTO
BTFSC
GOTO
BTFSC
GOTO

PORTB,7
ATRAS1
PORTB,6
ATRAS1
PORTB,5
ATRAS1

CALL

VELOCIDAD_MIN

BTFSS
GOTO
BTFSS
GOTO
BTFSC
GOTO
BTFSC
GOTO

PORTB,7
ATRAS2
PORTB,6
ATRAS2
PORTB,5
ATRAS2
PORTB,4
ATRAS2

ATRAS1

CALL

VELOCIDAD

BTFSS
GOTO
BTFSC
GOTO
BTFSS
GOTO
BTFSS
GOTO

PORTB,7
DERECHA
PORTB,6
DERECHA
PORTB,5
DERECHA
PORTB,4
DERECHA

ATRAS2

;-----------ADELANTE......ATRAS-------------BSF
PORTC,2
BCF
PORTC,3
BSF
PORTC,4
BCF
PORTC,5

DERECHA

BTFSC
GOTO
BTFSC
GOTO
BTFSC
GOTO

PORTB,7
DERECHA1
PORTB,6
DERECHA1
PORTB,5
DERECHA1

CALL

VELOCIDAD_MIN

BTFSS
GOTO
BTFSS
GOTO
BTFSC
GOTO
BTFSC
GOTO

PORTB,7
DERECHA2
PORTB,6
DERECHA2
PORTB,5
DERECHA2
PORTB,4
DERECHA2

DERECHA1

CALL

VELOCIDAD

BTFSS
GOTO
BTFSS
GOTO
BTFSC
GOTO
BTFSS
GOTO

PORTB,7
IZQUIERDA
PORTB,6
IZQUIERDA
PORTB,5
IZQUIERDA
PORTB,4
IZQUIERDA

DERECHA2

BCF
BSF
BCF
BCF

PORTC,2
PORTC,3
PORTC,4
PORTC,5

IZQUIERDA
MIN3

BTFSC

PORTB,7
GOTO IZQUIERDA1
BTFSC PORTB,6
GOTO IZQUIERDA1
BTFSC PORTB,5
GOTO IZQUIERDA1

CALL

VELOCIDAD_MIN

BTFSS
GOTO
BTFSS
GOTO
BTFSC
GOTO
BTFSC
GOTO

PORTB,7
IZQUIERDA2
PORTB,6
IZQUIERDA2
PORTB,5
IZQUIERDA2
PORTB,4
IZQUIERDA2

CALL

VELOCIDAD

IZQUIERDA1

IZQUIERDA2
BTFSS
GOTO
BTFSS
GOTO
BTFSS
GOTO
BTFSC
GOTO
BCF
BCF
BCF
BSF

PORTB,7
DETENER
PORTB,6
DETENER
PORTB,5
DETENER
PORTB,4
DETENER
PORTC,2
PORTC,3
PORTC,4
PORTC,5

DETENER

BTFSC
GOTO
BTFSC
GOTO
BTFSC
GOTO
BTFSC
GOTO
BCF

PORTB,7
ADELANTE
PORTB,6
ADELANTE
PORTB,5
ADELANTE
PORTB,4
ADELANTE
PORTC,1

GOTO INICIO

END

10. Conclusiones y recomendaciones:

Se logr verificar el correcto funcionamiento del PWM del circuito implementado.


Tomar en cuenta la sintaxis de las distintas instrucciones y si las mismas estn
orientadas a registros, bits o constantes.

Para aumentar la distancia de recepcin de la seal, debemos aumentar la


potencia en el emisor.
Podemos mejorar la calidad de recepcin aumentando el largo de la antena del
mdulo de recepcin.
Los decodificadores de los mdulos RF son de tecnologa C-MOS, por lo cual se
debe tener mucho cuidado al manipularlos.

11. BIBLIOGRAFIA
http://zygzax.com/tag/xy-fst/ [1].
http://spanish.alibaba.com/wholesale/product-gs/fs1000a-xy-fst-433mhz-rfmodule-1801661832.html [2].
http://gzaloprgm.com.ar/rfht12/ [3].

Vous aimerez peut-être aussi