Control IR de la lámpara Livarno de Lidl
- Anilandro
- Mensajes: 4905
- Registrado: Dom Feb 11, 2007 10:16 pm
- Ubicación: Islas Baleares, España
- Contactar:
Re: Control IR de la lámpara Livarno de Lidl
Al final no era nada de eso, si no un bug de planteamiento con un resultado imprevisto, ya que si la información de 1's y 0's reside en el tiempo entre impulsos, y tenemos 32 bits, debe haber 33 impulsos para delimitarlos, no 32. En mi caso el último lapso de tiempo se quedaba al aire, sin impulso de finalización, y por tanto el algoritmo receptor que comprueba la integridad de los datos conjugando el byte 1 con el 2, y el 3 con el 4, los daba como erróneos.
El porqué a veces interrumpiendo el haz durante la transmisión o interfiriéndolo con otro mando a distancia, los aceptaba como correctos, lo ignoro.
En todo caso, añadiendo en 0 adicional al array "int secuencia[33]" y aumentado de igual forma a 33 el límite del bucle "for" de generación de señal, la cosa se ha puesto a funcionar sin error alguno.
Ahora, lo siguiente será ampliar el programa para que pueda ser controlado via serie desde el PC...
Saludos
El porqué a veces interrumpiendo el haz durante la transmisión o interfiriéndolo con otro mando a distancia, los aceptaba como correctos, lo ignoro.
En todo caso, añadiendo en 0 adicional al array "int secuencia[33]" y aumentado de igual forma a 33 el límite del bucle "for" de generación de señal, la cosa se ha puesto a funcionar sin error alguno.
Ahora, lo siguiente será ampliar el programa para que pueda ser controlado via serie desde el PC...
Saludos
La VIDA sólo es energía que ha aprendido a defenderse... (Anilandro)
*** La Web de Anilandro *** http://sites.google.com/site/anilandro
*** La Web de Anilandro *** http://sites.google.com/site/anilandro
Re: Control IR de la lámpara Livarno de Lidl
Buen trabajo Anilandro; te lo voy a copiar para poner un belén dentro de la carcasa de un televisor; con el mando a distancia se producirán el anochecer, el amanecer, truenos, relámpagos; etc.
Para ir bién el mando debería ser de TV.
Para ir bién el mando debería ser de TV.
Cielo azul sobre campo de mieses, ánimo.
Constitución Española:
Todos los españoles tienen el deber de trabajar y el derecho al trabajo.
Todos los españoles tienen derecho a disfrutar de una vivienda digna y adecuada.
Constitución Española:
Todos los españoles tienen el deber de trabajar y el derecho al trabajo.
Todos los españoles tienen derecho a disfrutar de una vivienda digna y adecuada.
- Anilandro
- Mensajes: 4905
- Registrado: Dom Feb 11, 2007 10:16 pm
- Ubicación: Islas Baleares, España
- Contactar:
Re: Control IR de la lámpara Livarno de Lidl
Pues si algo de esto te sirve, me alegro, Rovellat. Tengo a punto el programa de control IR desde el PC. Lo he montado a base de funciones para que el código pueda trasplantarse fácilmente... Esta primera parte de código no tiene secretos, declaración de variables, configuración de pines, activar comunicación serie y configurar Timer 2 para que dé los 38 Khz...
El "loop()" es aún más sencillo, llama a función "datoSerie()", y si ésta devuelve un dato válido, llama a función "montarSec()" que con dicho dato crea la secuencia NEC de 32 bits, y luego llama a función "sendData()", que emite dicha secuencia a través del LED de infrarrojos...
Continuará...
Saludos
El "loop()" es aún más sencillo, llama a función "datoSerie()", y si ésta devuelve un dato válido, llama a función "montarSec()" que con dicho dato crea la secuencia NEC de 32 bits, y luego llama a función "sendData()", que emite dicha secuencia a través del LED de infrarrojos...
Continuará...
Saludos
La VIDA sólo es energía que ha aprendido a defenderse... (Anilandro)
*** La Web de Anilandro *** http://sites.google.com/site/anilandro
*** La Web de Anilandro *** http://sites.google.com/site/anilandro
- Anilandro
- Mensajes: 4905
- Registrado: Dom Feb 11, 2007 10:16 pm
- Ubicación: Islas Baleares, España
- Contactar:
Re: Control IR de la lámpara Livarno de Lidl
La función "datoSerie()" captura uno o dos bytes enviados por el monitor serie del IDE de Arduino en el PC (o de cualquier otro programa monitor serie), y con estos bytes genera un dato de una o dos cifras que carga en la variable global "dato".
La función "montarSec()", a partir de "dato" crea la secuencia de 0's y 1's correspondiente al protocolo NEC, de 4 bytes, 1º 00000000, 2º 11111111, 3º dato y 4º inverso de dato. Al final añade un bit adicional de cierre de la secuencia, con valor 0. Estos valores se guardan en el array global "secuencia[]", que luego utilizará la función de envío de datos IR...
Debo decir que muchas "funciones" no las utilizo como tales, devolviendo un solo valor, si no como "procedimientos", ya que actúan sobre variables globales que también utilizan otras funciones del programa. Esto no les gusta a los puristas de la programación porque absorbe más memoria y en programas complejos puede dar lugar a resultados inesperados, pero en cosas sencillas como este programa no hay problema alguno, todo está controlado, el programa resulta más simple y se evitan idas y venidas, aparte de no tener que utilizar los famosos punteros de C que siempre me han dado algo de alergia...
Saludos
La función "montarSec()", a partir de "dato" crea la secuencia de 0's y 1's correspondiente al protocolo NEC, de 4 bytes, 1º 00000000, 2º 11111111, 3º dato y 4º inverso de dato. Al final añade un bit adicional de cierre de la secuencia, con valor 0. Estos valores se guardan en el array global "secuencia[]", que luego utilizará la función de envío de datos IR...
Debo decir que muchas "funciones" no las utilizo como tales, devolviendo un solo valor, si no como "procedimientos", ya que actúan sobre variables globales que también utilizan otras funciones del programa. Esto no les gusta a los puristas de la programación porque absorbe más memoria y en programas complejos puede dar lugar a resultados inesperados, pero en cosas sencillas como este programa no hay problema alguno, todo está controlado, el programa resulta más simple y se evitan idas y venidas, aparte de no tener que utilizar los famosos punteros de C que siempre me han dado algo de alergia...
Saludos
La VIDA sólo es energía que ha aprendido a defenderse... (Anilandro)
*** La Web de Anilandro *** http://sites.google.com/site/anilandro
*** La Web de Anilandro *** http://sites.google.com/site/anilandro
- Anilandro
- Mensajes: 4905
- Registrado: Dom Feb 11, 2007 10:16 pm
- Ubicación: Islas Baleares, España
- Contactar:
Re: Control IR de la lámpara Livarno de Lidl
La función "sendData()", que ha quedado bastante compacta, envía por IR la secuencia NEC, modulando la señal de 38Khz del Timer 2 ...Y no hay más, ya podemos controlar la lamparita de Lidl desde Arduino.
Sólo recordar que la señal de 38 Khz sale de forma permanente por el "pin-11", y que la modulación se activa al poner a LOW el "pin-7", guardado en la variable "pinCOM", y se detiene con HIGH...
La primera parte de "sendData()" crea la señal de inicio de 9 mS. seguido por un espacio de 4,5 mS. La segunda parte es un bucle for de 33 pasos (de 0 a 32), que lee el array "secuencia[]" donde antes hemos guardado la secuencia de 32+1 bits a transmitir. En cada paso emite primero una señal de 560 uS, seguida de un espacio variable en tiempo de 560 uS si el bit correspondiente es 0, o de 1690 uS si el bit es 1...
El programa completo lo podéis bajar de mi Drive: https://t.co/zezoyJhHHW
Saludos...
Sólo recordar que la señal de 38 Khz sale de forma permanente por el "pin-11", y que la modulación se activa al poner a LOW el "pin-7", guardado en la variable "pinCOM", y se detiene con HIGH...
La primera parte de "sendData()" crea la señal de inicio de 9 mS. seguido por un espacio de 4,5 mS. La segunda parte es un bucle for de 33 pasos (de 0 a 32), que lee el array "secuencia[]" donde antes hemos guardado la secuencia de 32+1 bits a transmitir. En cada paso emite primero una señal de 560 uS, seguida de un espacio variable en tiempo de 560 uS si el bit correspondiente es 0, o de 1690 uS si el bit es 1...
El programa completo lo podéis bajar de mi Drive: https://t.co/zezoyJhHHW
Saludos...
La VIDA sólo es energía que ha aprendido a defenderse... (Anilandro)
*** La Web de Anilandro *** http://sites.google.com/site/anilandro
*** La Web de Anilandro *** http://sites.google.com/site/anilandro
- Anilandro
- Mensajes: 4905
- Registrado: Dom Feb 11, 2007 10:16 pm
- Ubicación: Islas Baleares, España
- Contactar:
Re: Control IR de la lámpara Livarno de Lidl
Bien, entrando en el monitor serie los valores de las teclas del mando de la lámpara:
Ésta va a responder de la misma manera como lo haría con su mando a distancia...
En este caso también aprovecho para rescatar un programita de Visual Basic que hice hace algunos años, que llamé "Arduino Remote Control" (ARC) y que permite configurar 10 pulsadores con los valores que queramos, y que al pulsar envía a través del puerto COM seleccionado, que en este caso deberá ser el del Arduino...
...El instalador del programa ARC.exe, contenido en un fichero comprimido .rar, se puede bajar desde: https://drive.google.com/file/d/115cd1G ... u-5THzlPqb
En XP se instalará sin más, y en W7 lo tenéis que ejecutar como Administrador, porque en caso contrario dará errores y no cargará los OCX necesarios. Supongo que en W8 y W10 también funciona, pero no lo he probado...
Saludos
Ésta va a responder de la misma manera como lo haría con su mando a distancia...
En este caso también aprovecho para rescatar un programita de Visual Basic que hice hace algunos años, que llamé "Arduino Remote Control" (ARC) y que permite configurar 10 pulsadores con los valores que queramos, y que al pulsar envía a través del puerto COM seleccionado, que en este caso deberá ser el del Arduino...
...El instalador del programa ARC.exe, contenido en un fichero comprimido .rar, se puede bajar desde: https://drive.google.com/file/d/115cd1G ... u-5THzlPqb
En XP se instalará sin más, y en W7 lo tenéis que ejecutar como Administrador, porque en caso contrario dará errores y no cargará los OCX necesarios. Supongo que en W8 y W10 también funciona, pero no lo he probado...
Saludos
La VIDA sólo es energía que ha aprendido a defenderse... (Anilandro)
*** La Web de Anilandro *** http://sites.google.com/site/anilandro
*** La Web de Anilandro *** http://sites.google.com/site/anilandro
- Anilandro
- Mensajes: 4905
- Registrado: Dom Feb 11, 2007 10:16 pm
- Ubicación: Islas Baleares, España
- Contactar:
Re: Control IR de la lámpara Livarno de Lidl
Un último añadido a este tema. Me he metido en mi viejo VBasic 6.0 y he programado un mando de IR concreto para lámpara de Lidl. Con todas sus teclas operativas igual que el mando físico. El archivo de instalación para W7-8-10 (que se debe ejecutar como Administrador) se puede bajar en formato .rar desde: https://t.co/YVR6JnAlZi ...
Saludos
Saludos
La VIDA sólo es energía que ha aprendido a defenderse... (Anilandro)
*** La Web de Anilandro *** http://sites.google.com/site/anilandro
*** La Web de Anilandro *** http://sites.google.com/site/anilandro
Re: Control IR de la lámpara Livarno de Lidl
Muy interesante Anilandro, algo parecido hice yo hace algún tiempo pero usando un receptor de un optoacoplador de barrera.
https://youtu.be/53glcHVtqjs
https://youtu.be/53glcHVtqjs
- Anilandro
- Mensajes: 4905
- Registrado: Dom Feb 11, 2007 10:16 pm
- Ubicación: Islas Baleares, España
- Contactar:
Re: Control IR de la lámpara Livarno de Lidl
Interesante, Joliva68 ¿Utilizas integrados específicos o son uControladores generales? Si es así ¿Cuales son? ¿Puedes colgar el código?...
Saludos
Saludos
La VIDA sólo es energía que ha aprendido a defenderse... (Anilandro)
*** La Web de Anilandro *** http://sites.google.com/site/anilandro
*** La Web de Anilandro *** http://sites.google.com/site/anilandro
Re: Control IR de la lámpara Livarno de Lidl
Hola Anilandro uso microcontroladores el 16f628a.Anilandro escribió:Interesante, Joliva68 ¿Utilizas integrados específicos o son uControladores generales? Si es así ¿Cuales son? ¿Puedes colgar el código?...
Saludos
Aquí te dejo el enlace del proyecto:
http://www.picpc.es/mando_distancia.html
En la web hay un error el último es el emisor es que aparecen dos receptores.
Saludos.
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado