Saludos, un gusto escribir una vez mas aca, soy nuevo en esto de las transmisiones vía radiofrecuencia, les comento que estoy realizando un proyecto con un sensor de temperatura cuya lectura se visualizará en un lcd via rf.
En el siguiente circuito que adjunto uso el conversor a/d del pic16f877a para visualizar la lectura en en lcd1 de ese pic y funciona correctamente, pero cuando deseo visualizarlo en el receptor (pic 16f628a) no me muestra lectura alguna, para la transmisión uso unos modulos a 315Mhz (adjunto el datasheet) y el codificador y decodificador ht12e/ht12d, he comprobado que el modulo funciona correctamente he probado transmitiendo 1 bit y efectivamente recibe correctamente el dato que envio, mi problema es el siguiente:
Conecto el pin 39 del pic 16f877a a mi entrada del encoder(pin10), conecto la salida del decoder (pin10) al pin asignado para la recepcion de datos porta.0 del pic 16f628a(pin17), pero no logro visualizar el dato que envio
, y bueno en ese mismo instante para comprobar nuevamente el estado de transmisión pruebo transmitiendo bits y efectivamente hay transmision y recepción sin embargo no logro visualizar el dato que necesito.
La salida del del pin 39 del pic 16f877a corresponde al dato que almaceno de mi conversor a/d para luego transmitirlo, he probado la transmisión directa usando un cable para unir el pin 39 del 16f877a y el pin 17 del 16f628a y funciona, bueno de esa forma logro visualizar la lectura del dato que deseo enviar por lo que creo el programa funciona correctamente.
Alguna sugerencia para solucionar mi problema seria bien recibida y muy agradecida.
Adjunto el esquema que realice en caso sirva de algo para su ilustración en pdf.
Incluyo fragmentos del programa que uso, esta hecho en microcode studio, tal vez estoy omitiendo algo o cometo un error y esa sea la razón por la cual no funcione.
datahsheet modulo:
http://electronicahifi.com/pdf/212st-rx04-a.pdf
En el siguiente circuito que adjunto uso el conversor a/d del pic16f877a para visualizar la lectura en en lcd1 de ese pic y funciona correctamente, pero cuando deseo visualizarlo en el receptor (pic 16f628a) no me muestra lectura alguna, para la transmisión uso unos modulos a 315Mhz (adjunto el datasheet) y el codificador y decodificador ht12e/ht12d, he comprobado que el modulo funciona correctamente he probado transmitiendo 1 bit y efectivamente recibe correctamente el dato que envio, mi problema es el siguiente:
Conecto el pin 39 del pic 16f877a a mi entrada del encoder(pin10), conecto la salida del decoder (pin10) al pin asignado para la recepcion de datos porta.0 del pic 16f628a(pin17), pero no logro visualizar el dato que envio
La salida del del pin 39 del pic 16f877a corresponde al dato que almaceno de mi conversor a/d para luego transmitirlo, he probado la transmisión directa usando un cable para unir el pin 39 del 16f877a y el pin 17 del 16f628a y funciona, bueno de esa forma logro visualizar la lectura del dato que deseo enviar por lo que creo el programa funciona correctamente.
Alguna sugerencia para solucionar mi problema seria bien recibida y muy agradecida.
Adjunto el esquema que realice en caso sirva de algo para su ilustración en pdf.
Incluyo fragmentos del programa que uso, esta hecho en microcode studio, tal vez estoy omitiendo algo o cometo un error y esa sea la razón por la cual no funcione.
Código:
*****************************************
tx
DEFINE osc 4
DEFINE LCD_BITS 4
define LCD_DREG PORTB ;bit de datos del LCD empezando
define LCD_DBIT 0 ;por B.0. B.1, B.2, B.3
define LCD_RSREG PORTB ;bit de registro del LCD conectar
define LCD_RSBIT 5 ;en el puerto B.5
pause 2000
define LCD_EREG PORTB ;bit de enable conectar en el
define LCD_EBIT 4 ;puerto B.4
define ADC_BITS 8 ;Fije el número de BITS del resultado (5,8,10)
define ADC_CLOCK 3 ;Fije EL CLOCK (rc=3)
define ADC_SAMPLEUS 50 ;Fije el tiempo de muestreo en Us
;ADC_SAMPLEUS es el número de microsegundos que el programa
;espera entre fijar el canal y comenzar la conversión analógica/digital
TRISA= 1 ;el puerto A es de entrada
ADCON1= %00001110 ;el puerto A.0 es conversor los demás digitales
TRISB= 0
dato var word ;crear variable dato para guardar
tempbaj var byte
tempalt var byte
x var byte
releF var portD.2
releC var portD.3
led var portD.4
enter var portD.5
bsubir var portD.6
bbajar var portD.7
Symbol T2400 = 0
EEPROM 0,[22,26] ;contenido inicial de la EEPROM
inicio: ;3 parpadeos del led que indica que funciona
for x =1 to 3
high led
pause 200
low led
pause 200
next
READ 0,tempbaj ;lee la EEPROM 0 y lo guarda en tempbaj
read 1,tempalt ;lee la EEPROM 1 y lo guarda en tempalt
sensar:
adcin 0, dato
serout PORTB.6, T2400, [dato]
Código:
rx
DEFINE osc 4
define LCD_DREG PORTB ;bit de datos del LCD empezando
define LCD_DBIT 0 ;por B.0. B.1, B.2, B.3
define LCD_RSREG PORTB ;bit de registro del LCD conectar
define LCD_RSBIT 5 ;en el puerto B.5
pause 2000
define LCD_EREG PORTB ;bit de enable conectar en el
define LCD_EBIT 4 ;puerto B.4
DEFINE LCD_BITS 4
cmcon= 7
TRISB= 0
dato var word ;crear variable dato para guardar
x var byte
led var portB.6
Symbol T2400 = 0
inicio:
for x =1 to 3 ;3 parpadeos del led que indica que funcion
high led
pause 200
low led
pause 200
next
sensar:
serin PORTA.0, T2400, dato
LCDOUT $FE,1,"Temperatura Actual" ;limpia el LCD y muestra el texto
dato=dato/2 ;el dato dividir para 2
LCDout $FE,$c6,dec dato,"ºC" ;muestra el decimal de dato
end
datahsheet modulo:
http://electronicahifi.com/pdf/212st-rx04-a.pdf
Adjuntos
Última edición: