Enchufes radiocontrolados (parte 2)

Hace ya un tiempo que tenía pendiente profundizar en el tema de los enchufes radiocontrolados, y ahí va.
Para hacer las pruebas he usado una pequeña placa con una pareja de módulos de recepción y emisión RF en la banda de 433Mhz que es la que usan los enchufes que os mostré anteriormente. Se pueden conseguir directamente en Ebay por menos de un euro la pareja si los compráis directamente a China.
En la foto siguiente veis que están montados los dos módulos, a la derecha el de recepción, con el pin de datos conectado al pin 2 de Arduino, y a la izquierda el de emisión con el pin de datos conectado al pin 7 de Arduino. El resto son las conexiones a Vcc y Gnd, excepto el cable naranja que hace las funciones de antena en la parte de emisión.
Esquema del montaje para pruebas

La librería que he usado en los ejemplos es la de Randy Simons, RemoteSwitch, que os podéis descargar desde aquí. Antes de poder usarla tendréis que cambiar las referencias a WProgram.h por Arduino.h en los ficheros RemoteReceiver.h y RemoteSwitch.h.

Vamos entrando en materia. ¿Cómo podemos saber los códigos que envía nuestro mando al pulsar uno de los botones? Pues dentro de la librería viene un ejemplo, show_received_code.pde que algo retocado y en castellano queda de la siguiente forma:

Al ejecutarlo nos da una salida como la siguiente:

Donde podemos ver que el código 334554 corresponde a ‘D On‘ y 334550 a ‘D Off‘. El código 334606 es un código erróneo, que nos devuelve la librería debido seguramente a interferencias (o no…). El periodo de la señal es de 150 microsegundos (este dato nos sera útil a la hora de enviar los códigos en el siguiente ejemplo).
NOTA: Como habréis visto, aunque en la placa esté conectado el módulo de envío por RF, en este ejemplo no se ha usado para nada. Está montado, más que nada, por comodidad, y por no tener que estar montando y desmontando los módulos cuando cambio de ejemplo.

El siguiente paso natural es sustituir nuestro mando por un Arduino. Imaginemos que queremos hacer que cuando con nuestro mando enviemos una señal D On, nuestro Arduino lo detecte y envíe una señal E On. No tiene mucho sentido pero puede servirnos de punto de partida para otras implementaciones mas complejas (en el ejemplo vemos como se puede recibir y enviar con el mismo programa).

Configuramos el enchufe como 10100 00001 (Aparato E) para que podamos comprobar que al pulsar el botón D ON el Arduino envía el código E ON y se activa el enchufe.

Configuración 10100 aparato E.

Cargamos el siguiente código en nuestro Arduino y lo probamos:

Y a partir de ahí ya podéis adaptar el código para hacer lo que queráis.

Bueno, un último apunte: existe una versión más moderna de la librería aquí, que soluciona algún problema como el de tener que activar y desactivar manualmente las interrupciones (cli/sei) para que se pueda usar la recepción y el envío simultáneamente en el mismo programa.
Espero que os sirva, y si tenéis alguna pregunta, será bienvenida.

Comentarios

  1. Por Anonymous

    Responder

  2. Por Anonymous

    Responder

    • Responder

    • Por Anonymous

      Responder

  3. Por Anonymous

    Responder

    • Responder

    • Por Anonymous

      Responder

    • Por Anonymous

      Responder

    • Responder

    • Por Anonymous

      Responder

    • Por Anonymous

      Responder

    • Por Anonymous

      Responder

    • Responder

    • Por Anonymous

      Responder

    • Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *