Hardware low voltage control
There are the so-called "transistor outputs", also FET, to control the low-voltage load (with voltage up to the input voltage) in the Wiren Board controllers. They can control the switching of low-voltage lamps, led strips, external relay blocks, etc.
All transistor outputs can be controlled from the web interface, where they are called according to the terminals, for example 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