Управление низковольтной нагрузкой
Для управления низковольтной нагрузкой (с напряжением вплоть до напряжения входного питания) в Wiren Board предназначены так называемые "транзисторные выходы", они же FET. С их помощью можно управлять включением низковольтных ламп, светодиодных лент, внешних блоков реле и т.д.
Всеми транзисторными выходами можно управлять из веб-интерфейса, там они называются соответственно клеммам, например A1_OUT.
Технические детали
Для сокращения общего числа клеммников каналы управления низковольтной нагрузки совмещены с каналами АЦП - смотрите Мультиплексирование портов. Поэтому выходы имеют большое, но конечное сопротивление (30-100кОм). Это может вызывать, например, слабое свечение светодиодных лент (решение проблемы: добавить резистор на питание)
Примечание для Wiren Board версий 2.8 и 3.5:
- при подключении индуктивных нагрузок (реле) не забудьте поставить защитный диод - всплеск напряжения от катушки реле может повредить контроллер. Максимальный ток на канал - 3А, напряжение до 24В.
Примечание для Wiren Board версии 4: В Wiren Board 4 защитный диод встроен, и максимальное напряжение не должно превышать напряжения питания контроллера (Vin). Максимальный ток также 3 А. Если используется несколько каналов, и суммарный ток больше 5 А, подключите несколько клеммников GND к "минусу" источника питания.
Примеры использования
Нагрузка подключается следующим образом: "плюс" нагрузки подключается к источнику питания, "минус" подключается к транзисторному выходу. Чтобы нагрузка начала работать, нужно подать высокий уровень на затвор транзистора.
На иллюстрациях приведены схемы подключения светодиода и реле.
Также можно легко подключить готовый модуль реле, например такой
Пример работы в Linux
Смотрите GPIO.
- Находим номер GPIO, соответсвующий нужному клеммнику в таблице WB2.8/WB3.5/WB4/WB5. Для клеммника номер 2 в версии 2,8 это GPIO 32.
- Экспортируем GPIO в sysfs
root@wirenboard:~# echo 32 > /sys/class/gpio/export
- Устанавливаем GPIO в режим вывода для управления транзистором. Это обязательно, т.к. GPIO может находится в режиме ввода и иметь высокий импенданс, оставляя транзистор в неопределённом состоянии.
root@wirenboard:~# echo out > /sys/class/gpio/gpio32/direction
- Открываем транзистор, подавая логический высокий уровень на затвор:
root@wirenboard:~# echo 1 > /sys/class/gpio/gpio32/value
- Закрываем транзистор, подавая логический ноль на затвор:
root@wirenboard:~# echo 0 > /sys/class/gpio/gpio32/value