Управление низковольтной нагрузкой

Материал из Wiren Board
Другие языки:

Для управления низковольтной нагрузкой в Wiren Board предназначены так называемые "транзисторные выходы", они же FET. С их помощью можно управлять включением низковольтных ламп, светодиодных лент, внешних блоков реле и т.д.

Всеми транзисторными выходами можно управлять из веб-интерфейса, там они называются соответственно клеммам, например A1_OUT.

Технические детали

Эквивалентная схема выходов Ax для WB4

Для сокращения общего числа клеммников каналы управления низковольтной нагрузки совмещены с каналами АЦП - смотрите Мультиплексирование портов. Поэтому выходы имеют большое, но конечное сопротивление (100кОм). Это может вызывать, например, слабое свечение светодиодных лент (решение проблемы: добавить резистор на питание) В контроллерах WB6 выходы защищены от импульсных перенапряжений, короткого замыкания, от перегрева.

Примеры использования

Пример подключения светодиода
Пример подключения реле

Нагрузка подключается следующим образом: "плюс" нагрузки подключается к источнику питания, "минус" подключается к транзисторному выходу. Чтобы нагрузка начала работать, нужно подать высокий уровень на затвор транзистора.

На иллюстрациях приведены схемы подключения светодиода и реле.

Также можно легко подключить готовый модуль реле, например такой

Пример работы в Linux

Смотрите GPIO.

  1. Находим номер GPIO, соответсвующий нужному клеммнику в таблице WB2.8/WB3.5/WB4/WB5. Для клеммника номер 2 в версии 2.8 это GPIO 32.
  2. Экспортируем GPIO в sysfs
    root@wirenboard:~# echo 32 > /sys/class/gpio/export
  3. Устанавливаем GPIO в режим вывода для управления транзистором. Это обязательно, т.к. GPIO может находится в режиме ввода и иметь высокий импенданс, оставляя транзистор в неопределённом состоянии.
    root@wirenboard:~# echo out > /sys/class/gpio/gpio32/direction
  4. Открываем транзистор, подавая логический высокий уровень на затвор:
    root@wirenboard:~# echo 1 > /sys/class/gpio/gpio32/value
  5. Закрываем транзистор, подавая логический ноль на затвор:
    root@wirenboard:~# echo 0 > /sys/class/gpio/gpio32/value