Learning   Examples | Foundations | Hacking | Links

Librería X10

Esta librería te permite enviar y recibir comandos X10 desde un módulo Arduino. X10 es un protocolo serie síncrono que viaja a través de las líneas eléctricas de alimentación de corriente alterna (AC), envía un bit cada vez que la señal de potencia AC cruza los cero voltios. Se usa en la automatización del hogar. Puedes encontrar controladores y dispositivos X10 en http://www.x10.com, http://www.smarthome.com, y en otros muchos sitios.

Esta librería ha sido probada utilizando el controlador X10 unidireccional PL513, y el controlador X10 bidireccional TW523. Estos dos controladores son esencialmente unos modems X10, que convierten la salida de 5V del Arduino a señales AC a su cruce por el cero.

Para conectar un Arduino a uno de estos módulos, coge un cable telefónico con un conector RJ-11, y corta uno de sus extremos. Luego cablea los pines de esta manera:

Download: X10.zip

Para usarla, descomprime y copia la carpeta resultante, llamada TextString, en la carpeta lib/targets/libraries de la carpeta de tu aplicación arduino. Luego reinicia la aplicación Arduino.

Cuando reinicie, verás unos cuantos mensajes de aviso en al panel de depuración en la parte inferior del programa. Ignóralos.

Para la versión 0.3, aquí tienes lo que puedes hacer:

x10(int strLength) - Inicia una instancia de la librería X10 en dos pines digitales. Ejemplo:

x10 myHouse = x10(9, 10); // Inicia X10 con los pines 9 (pin cruce por cero) y 10 (pin de datos)

void write(byte houseCode, byte numberCode, int numRepeats) - Envía un mensaje X10, ejemplo

myHouse.write(A, ALL_LIGHTS_ON, 1);     // Enciende todas las luces del código A de la casa.

version(void) - Obtiene la versión de la librería. Debido a que se añadirán más funciones, imprimir la versión de la librería será una útil herramienta de depuración cuando tengas algún problema con una determinada función. Por ejemplo si estás usando una versión anterior que no tiene la característica que necesitas!! e.g.

Serial.println(myHouse.version());   // Muestra la versión de la librería

Hay un número de constantes añadidas para que X10 resulte más sencillo. Son las siguientes:

  • De A hasta F: valores de códigos de hogar.
  • UNIT_1 hasta UNIT_16: valores de códigos de unidad
  • ALL_UNITS_OFF
  • ALL_LIGHTS_ON
  • ON
  • OFF
  • DIM
  • BRIGHT
  • ALL_LIGHTS_OFF
  • EXTENDED_CODE
  • HAIL_REQUEST
  • HAIL_ACKNOWLEDGE
  • PRE_SET_DIM
  • EXTENDED_DATA
  • STATUS_ON
  • STATUS_OFF
  • STATUS_REQUEST

La version 0.3 es compatible con Arduino 0012.

Para una completa explicación de X10 y sus códigos, écha un vistazo a esta nota técnica.


Si estás interesado en contribuir a desarrollar esta librería, por favor contacta conmigo tom.igoe [en] gmail.com

Share