Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Библиотеки/X10

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


Библиотека X10[1]

Эта библиотека позволяет отправлять и получать X10-команды от модуля Arduino. X10 – это синхронный последовательный протокол, использующий линии переменного тока. Он отсылает бит каждый раз, когда переменный ток достигает отметки в 0 вольт. Протокол X10 используется, как правило, в системах умного дома. Контроллеры и девайсы, работающие при помощи X10, можно найти тут, тут и т.д.

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

Чтобы подключить Arduino к одному из этих модулей, возьмите телефонный кабель с коннектором RJ-11 и обрежьте один из его концов. Затем подсоедините провода, как показано на картинке ниже:

X10-schematic.jpg

Загрузить библиотеку можно с GitHub.

Чтобы использовать ее, распакуйте скачанный ZIP-архив, а затем скопируйте распакованную папку (названную «X10») в папку ***/Документы/Arduino/libraries. Если вы никогда раньше не устанавливали библиотеку, то папки «libraries» у вас не будет. В таком случае создайте ее.

В версии 0.4 можно делать следующее:

x10.begin(rxPin, txPin, zeroCrossingPin)

Эта функция инициализирует экземпляр библиотеки X10 на трех цифровых контактах. Более наглядный пример:

x10 myHouse = x10.begin(8, 9, 10)

Здесь мы инициализируем экземпляр myHouse на 9-ом (контакт для перехода через ноль) и 10-ом (контакт для передачи данных) контактах.

Внимание! Контакт rxPin указан с прицелом на будущее, когда в библиотеку будут добавлены функции получения данных. То есть в этом месте можно использовать любой контакт, но фактически он задействован не будет.

void write(byte houseCode, byte numberCode, int numRepeats)

Эта функция отправляет X10-сообщение. Более наглядный пример:

myHouse.write(A, ALL_LIGHTS_ON, 1)

Здесь мы включаем все огни в доме, имеющем код A.

Ниже – несколько констант, добавленных для упрощения работы с X10:

  • От A до F: значения, обозначающие код для дома
  • От UNIT_1 до UNIT_16: значения, обозначающие код для устройства
  • 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

Версия 0.4 совместима с Arduino 1.0.3.

Более продвинутую версию этой библиотеки можно скачать тут.

Примеры

  • x10Blink - Мигание лампочкой
  • x10Fade - Управление яркостью лампочки
  • x10Multi - Включение/выключение нескольких лампочек

См.также

Внешние ссылки

  1. www.arduino.cc - X10