X10

Эта библиотека позволяет отправлять и получать команды протокола X10 от модуля Arduino. X10 - это синхронный последовательный протокол, который передается по линиям электропередач переменного тока, отправляя бит каждый раз, когда мощность переменного тока пересекает ноль вольт. Используется в домашней автоматизации.

Эта библиотека была проверена с помощью PL513 - одностороннего X10 контроллера, а TW523 - с помощью двустороннего X10 контроллера. Оба они по сути являются модемами X10, преобразуя выходное напряжение 5В Arduino в сигналы переменного тока при пересечении нуля.

Функции:

x10.begin (rxPin, txPin, zeroCrossingPin) - инициализировать экземпляр библиотеки X10 на трех цифровых выводах, например, x10 myHouse = x10.begin(8, 9, 10); инициализирует X10 на пинах 9 (пин для пересечения нуля) и 10 (пин данных). Пин rxPin объявлен для будущего использования, когда будет реализован прием. 

На данный момент вы можете использовать любое значение, и оно не зарезервирует пин-код.
В приведенном выше примере 8 - это просто заполнитель, пока у меня не будет времени на написание функций приема.

void write (byte houseCode, byte numberCode, int numRepeats) - отправляет сообщение X10, например
myHouse.write (A, ALL_LIGHTS_ON, 1); Включает все огни в доме, код А.

Для упрощения обмена данными с X10 добавлено несколько констант. Они заключаются в следующем:

A - F: значения кода дома.

Значения кодов единиц UNIT_1 - UNIT_16: 

  1. ALL_UNITS_OFF
  2. ALL_LIGHTS_ON
  3. ON
  4. OFF
  5. DIM
  6. BRIGHT
  7. ALL_LIGHTS_OFF
  8. EXTENDED_CODE
  9. HAIL_REQUEST
  10. HAIL_ACKNOWLEDGE
  11. PRE_SET_DIM
  12. EXTENDED_DATA
  13. STATUS_ON
  14. STATUS_OFF
  15. STATUS_REQUEST