Arduino:Библиотеки/X10
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Библиотека X10[1]
Эта библиотека позволяет отправлять и получать X10-команды от модуля Arduino. X10 – это синхронный последовательный протокол, использующий линии переменного тока. Он отсылает бит каждый раз, когда переменный ток достигает отметки в 0 вольт. Протокол X10 используется, как правило, в системах умного дома. Контроллеры и девайсы, работающие при помощи X10, можно найти тут, тут и т.д.
Эта библиотека тестировалась при помощи одностороннего X10-контроллера PL513 и двустороннего X10-контроллера TW523. Оба устройства являются, по сути, X10-модемами, которые конвертируют 5-вольтовый сигнал от Arduino в сигналы переменного тока при переходе через ноль.
Чтобы подключить Arduino к одному из этих модулей, возьмите телефонный кабель с коннектором RJ-11 и обрежьте один из его концов. Затем подсоедините провода, как показано на картинке ниже:
Загрузить библиотеку можно с 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 - Включение/выключение нескольких лампочек