FLProg+nooLite (продолжение)

в 2:22, , рубрики: arduino, diy или сделай сам, FBD, flprog, Блог компании FLProg, Железо, умный дом

FLProg+nooLite (продолжение) - 1

В предыдущем посте я рассказал о реализации поддержки оборудования nooLite в программе FLProg. Моим упущение было не рассказать об одной очень удобной функции этого оборудования, которое позволяет подключить сразу несколько трансиверов к одному порту UART и обращаться с ними независимо. Я решил исправить это упущение.

Схема подключения нескольких трансиверов к одному порту UART (взято из документации на трансивер) выглядит так:

FLProg+nooLite (продолжение) - 2

Особенностью такого включения заключается в использовании входов SE трансиверов. Если на этот вход подать 0 V то трансивер не будет реагировать на команды, передаваемые через UART, а если подать 3-5V, то команды будут исполняться.
В этом уроке мы будем включать, и выключать несколько нагрузок с помощью разных трансиверов.
Схема тестового стенда:

FLProg+nooLite (продолжение) - 3

Создаём новый проект, и в нем конфигурируем входа – выхода контроллера.
Сначала создаём три входа для кнопок:

FLProg+nooLite (продолжение) - 4

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

FLProg+nooLite (продолжение) - 5

Затем создаём три выхода для управления трансиверами.

FLProg+nooLite (продолжение) - 6

FLProg+nooLite (продолжение) - 7

Затем создаём шесть переменных для команд управления.

FLProg+nooLite (продолжение) - 8

FLProg+nooLite (продолжение) - 9

Теперь перетаскиваем на схему первый вход, два блока R-триггера (Библиотека блоков – папка «Триггеры»), а так же две переменных – «Команда на включение нагрузки 1» и «Команда на отключение нагрузки 1». Затем соединяем их в соответствии со схемой:

FLProg+nooLite (продолжение) - 10

Как она работает? Поскольку у нас кнопка включена между GND и входом, а так же включён подтягивающий резистор то при отпущенной кнопке на выходе блока входа будет 1, а при нажатой кнопке – 0. Верхний R-Тригер выделяет передний фронт (переход от 0 к 1) – то есть момент отпускания кнопки и создаёт в переменной «Команда на отключение нагрузки 1» короткий импульс на отключение нагрузки. Нижний R-Триггер в виду того что у него инвертирован вход производит выделение заднего фронта (переход от 1 к 0) – то есть момента нажатия кнопки. И так же формирует в этот момент короткий импульс в переменной «Команда на включение нагрузки 1».
Теперь повторим эту схему для остальных входов.

FLProg+nooLite (продолжение) - 11

Назовём эту плату «Выделение фронтов» и создадим ещё одну. Сразу можно назвать её – «Управление трансиверами». Перетащим на неё переменные «Команда на включение нагрузки 1» и «Команда на отключение нагрузки 1», блок OR (Библиотека элементов – папка «Базовые элементы») и выход «Включение трансивера 1». Затем соединим их в соответствии со схемой:

FLProg+nooLite (продолжение) - 12

Как она работает? При наличии 1 в переменной «Команда на включение нагрузки 1» ИЛИ в переменной «Команда на отключение нагрузки 1» на выходе «Включение трансивера 1» появится лог 1 (ТО есть трансивер 1 будет отрабатывать подаваемые на него команды). Повторим эту схему для остальных трансиверов.

FLProg+nooLite (продолжение) - 13

Создадим новую плату «Отправка команд».

Для работы данной схемы важно, что бы управление трансиверами находилось, и отправка команд находились на разных платах, и плата управления была расположена выше, чем отправка команд. Это гарантирует, что сначала трансивер включится, а потом на него пойдет команда. Порядок выполнения команд в пределах одной платы не так однозначен и подчиняется более сложному алгоритму.

Перетащим на нижнюю плату все переменные команд включения, блок OR (Библиотека элементов – папка «Базовые элементы»), и блок управления трансивером nooLite (Библиотека элементов – папка «Разное»). Соединим их.

FLProg+nooLite (продолжение) - 14

В соответствии со схемой при появлении в любой из переменных лог.1 будет происходит отправка команды на включение нагрузки. Настроим блок управления трансивером nooLite на передачу этой команды.

FLProg+nooLite (продолжение) - 15

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

FLProg+nooLite (продолжение) - 16

Настроим блок.

FLProg+nooLite (продолжение) - 17

Ну, вот и всё. Спасибо за внимание.

Автор: FLProg

Источник

Поделиться новостью

* - обязательные к заполнению поля