[Aporte] - Receptor RF-IR universal - V2.0

#1
Hola gente del foro, aquí les traigo un receptor universal que puede ser implementado tanto para RF como para IR. Adjunto se encuentra el firmware del PIC16F628 el cual es de libre uso y modificación y una simulación en Proteus 7.9 junto con el esquematico básico. Este receptor tiene la capacidad de aprender cualquier código hasta una longitud total de 48 bits, abarcando así los integrados Learning code de 24 bits. El PIC trabaja con un cristal de 16MHz, y para que funcione para IR la salida del módulo IR tiene que ser negada, ya sea con una compuerta NOT o con un transistor con salida por colector.

Características:

- Protección contra atascamiento de software mediante WatchDog
- Capacidad de almacenar hasta 48 bits de datos + 2 de sincronización
- Posibilidad de usarse tanto para RF como para IR
- Receptor de un solo canal
- Funcionamiento biestable ON/OFF
- Almacenamiento de código en EEPROM no volátil
- Soporta integrados Fixed code (código fijo) y Learning code (código aprendido):
- HT12E/D
- MM53200 equivalente UM86409
- HT6026
- PT2260
- PT2262
- PT2264
- FP527
- PT2240
- PT2242
- EV1527
- HT6010 / HT6013 / HT6014
- HT600 / HT680 / HT6207 / HT6010 / HT6012
- MC145026 / HT640
- 5026-1 / 5026-2 / 5026-3 / 5026-4
- SMC918
- AX5326-3 / AX5326-4
- AX5026
Puesta en marcha:

Cuando se usa por primera vez, el receptor no contendrá ningún código. Para poder grabarlo lo que se debe hacer es primero presionar el botón del control que queremos grabar y mantenerlo apretado, luego se presiona el pulsador del receptor. A partir de ese momento el software comenzara una rutina de almacenamiento del código. Cuando este finaliza prendera el led “verde” indicando que se copio adecuadamente el código en memoria, y ahí se podrá soltar ambos botones. Si se quisiera copiar un nuevo código se debe repetir los pasos anteriores.

Una vez almacenado el código en memoria, quedará habilitado para ser usado. Cada vez que se presione el botón que envía es código, el led verde prendera y quedará prendido hasta que se vuelva a recibir nuevamente el mismo código, trabajando en modo ON/OFF. El led puede ser reemplazado por un transistor con un rele para activar/desactivar algo (ej. Motor, luces, bombas, ventilador, televisor, y casi cualquier cosa que uno desee).

Si por algún motivo el software se atascara, sólo se repondrá con la ayuda del timer WatchDog y el led “rojo” prendera por 0,5 seg indicando que se repuso el PIC.

Para hacerlo trabajar con IR pueden usar el siguiente módulo:

Y para usarlo con RF pueden usar el siguiente módulo:

Espero les sirva, saludos
 

Adjuntos

Última edición:
#5
oye juanma realize tu circuito pero con ir y funciona en ocaciones batallo para que aprenda el codigo, hay alguna forma de que trasmita lo que lee?, vi tu codigo pero creo es muy avanzado para mi :LOL:!

saludos.
 
#7
si lo inverti con un transistor, no se si sea un bug del codigo ya que me almacena los datos en la eeprom pero despues de desconectar el circuito por unos 2 min se borran la trama de la eeprom o almenos ya no reconoce la tecla programada.

mi duda es si se puede leer los datos de la eeprom y despues trasmitirlos via ir por decir hacia el tv.

saludos!
 
#9
Bueno, en esta ocación les traigo la versión 3 del receptor.
Este nuevo firmware tiene unas nuevas caracteristicas y otras mejoradas optimizadas.
Caracteristicas:
- Permite grabar hasta 41 controles de RF con diferentes códigos, ya sean del tipo código aprendido (Learning code) y código fijo (Fixed code).
- Borrado de la memoria eeprom con un solo pulsador (Pulsador Config del esquematico).
- Ya no es necesario presionar el botón del control primero, para luego presionar el botón de programación del código.

Para grabar un código se debe seguir los siguientes pasos:
1 - Presionar primero el botón Pgm_Cod para realizar una programación del código (Botón Pgm_Cod del esquematico)
2 - Luego presionar el botón del control a grabar. En caso de que no se reciba ningún código en un lapso de 10 seg, automáticamente se saldra de la rutina de grabado de código indicado con un destello del led de error por 1 segundo. Por el contrario, se se graba un control en forma correcta, se prenderá el led de código OK por un segundo indicando que se registro de forma correcta.
3 - Para volver a grabar otro código simplemente se vuelve a repetir los pasos 1 y 2.

Para borrar la memoria eeprom se debe seguir el siguiente paso:
1 - Presione el botón Config, verá que los leds de código error y OK parpadearan 3 veces, la memoria eeprom estará borrada.


PD: Esta nueva versión no esta pensada para IR, fue optimizada para controles de RF, por lo que no aseguro que funcione con controles remotos IR.
 

Adjuntos

Última edición:
#10
Hola, estoy tratando de probar el receptor con proteus y no logro que me guarde correctamente ningún código.
Siempre me enciende el led rojo.
he probado con las tres penales que venían en el proyecto y siempre me da error.
Alguien pudo hacerlo funcionar?
 
#11
adrianratti dijo:
Hola, estoy tratando de probar el receptor con proteus y no logro que me guarde correctamente ningún código.
Siempre me enciende el led rojo.
he probado con las tres penales que venían en el proyecto y siempre me da error.
Alguien pudo hacerlo funcionar?
No te toma los pulsadores, porque no entregan un código correcto, eso es por que el receptor esta preparado para recibir un código de 12, 9 o 24 bits, y ningun pulsador entrega esa cantidad, si lo montas te será más facil de probar. Esos pulsadores solo los utilice para hacer pruebas, pero no estan bien para el programa final.
 
#13
Si la hay, pero para eso debes hacerlo con otro PIC, que genere el tren de pulsos. Debes respetar la codificación que utiliza alguno de los integrados mencionados en el primer post, te recomiendo como faciles, HT12E, MM53200 equivalente UM86409 y EV1527
 
#17
Por cada bits del código utilizo 3 bits de la herramienta DPATTERN, para respetar la forma de onda de los códigos de los codecs de 12 y 24 bits y para el de 9 bits utilizo 4 bits de la herramienta. Previo hay que generar el preambulo.
 
#18
¿Se puede hacer un decodificador para un code learn y un transmisor para grabarle los códigos que uno quiere? Los code learn traen una programación de fábrica y si no se los programa diferente, cualquier control accionaría cualquier dispositivo. ¿O me equivoco?
 
#19
¿Se puede hacer un decodificador para un code learn y un transmisor para grabarle los códigos que uno quiere? Los code learn traen una programación de fábrica y si no se los programa diferente, cualquier control accionaría cualquier dispositivo. ¿O me equivoco?
Cada control learnin code viene con un código de fabrica, si lo cambias simplemente no accionaria el receptor con el que estaría hermanado. Lo que tu quierea hacer ya existe, se llaman controles copiadores, copian tanto controles de código fijo como learning code. Estos controles aprenden el código del control que quieres y lo reproduce tal cual es. Fíjate por mercado libre que no son caros.

 
#20
Claro, pero los llaveros que dispongo son code learn y hay que grabarlos con otro control que ya esté funcionando con el receptor. Son precisamente los copiadores. Los desarmé y tienen un pic12f629 en su interior.

Te paso el manual del control en los archivos adjuntos y verás cómo se programa.
 

Adjuntos

Arriba