RadioRadar - Радиоэлектроника, даташиты, схемы

https://www.radioradar.net/radiofan/miscellaneous/sliding_gate_automation_part2.html

Автоматика откатных ворот (часть 2)

Закончив с механической частью, переходим к электронной. Начнём с пульта дистанционного управления, схема которого показана на рис. 13. Для уменьшения его размеров применён модуль Arduino RF Nano, в котором на плату Arduino Nano встроен приёмопередатчик на микросхеме NRF24L01, который работает на частоте 2,4 ГГц. Можно применить отдельно плату Arduino Nano и модуль NRF24L01, но тогда для пульта, возможно, придётся применить корпус большего размера, на программу управления передатчиком такая замена не влияет. Выходная мощность передатчика установлена на максимум, приёмник уверенно принимает сигнал на расстоянии до 50 м. Управление реализовано на четырёх кнопках. Включается пульт кнопкой SB1, которая через резистор R3 открывает транзистор УТ1 с подачей питания на плату управления. Модуль A3 высоким уровнем напряжения на выводе А1 открывает транзистор VT2, который блокирует кнопку SB1, обеспечивая работу передатчика на заданное время - около 20 с, после чего микроконтроллер автоматически выключает питание пульта управления. Но если была нажата одна из кнопок управления, время отключения продлевается ещё на 20 с. При включении питания загорается светодиод HL1, который мигает при нажатии на любую из кнопок управления. По командам от кнопок SB2 ("Закрыть"), SB3 ("Открыть") и SB4 ("Стоп") микроконтроллер модуля А3 по внутренней шине SPI передаёт соответствующие команды на микросхему-передатчик NRF24L01. Также микроконтроллер этого модуля контролирует напряжение аккумулятора и при его снижении до 3,2 В включает-выключает светодиод HL1 с периодом 1 с. Заряжается аккумулятор через модуль A1 через разъём USB-micro, расположенный на плате этого модуля. Модуль А2, повышающий напряжение аккумулятора до 8 В, обеспечивает стабильную работу модуля А3. При снижении напряжения питания до 3,5 В модуль Arduino RF Nano отказывался работать. Собран пульт управления на макетной плате размерами 81x46 мм (рис. 14), монтаж проведён проводом МГТФ-0,12. Плата размещена в корпусе размерами 85x50x20 мм (рис. 15), приобретённом в Интернете. Аккумулятор может быть любой Li-Ion подходящих размеров.

Схема пульта дистанционного управления

Рис. 13. Схема пульта дистанционного управления

 

Макетная плата пульта управления

Рис. 14. Макетная плата пульта управления

 

Корпус для платы

Рис. 15. Корпус для платы

 

Схема модуля управления

Рис. 16. Схема модуля управления (по клику крупно)

 

"Мозгом" блока управления приводом ворот (рис. 16) является модуль Arduino Nano и несколько модулей ему в помощь. Управление производится с помощью кнопок, установленных в блоке управления, а также с дистанционного пульта по радиоканалу на частоте 2,4 ГГц. При отсутствии или неисправности блока радиоканала NRF24L01 функция управления по радиоканалу исключается, и управление осуществляется только с помощью кнопок. Для быстрого отклика на команду передатчика программа зациклена только на работу с приёмником, и при получении команды управления от передатчика программа выходит из этого цикла и выполняет полученную команду и снова зацикливается до получения следующей команды. Кроме автоматического режима открытия и закрытия ворот, реализован ручной режим управления воротами тремя кнопками: SB8 - Open ("Открыть"), SB9 - Stop ("Стоп") и SB10 - Close ("Закрыть"), а также режим плавного довода ворот. При включении режима Open или Close автоматика плавно увеличивает скорость движения ворот до заданного значения и в конце по сигналу с датчика доводчика плавно уменьшает скорость движения ворот до срабатывания датчика крайнего положения. Скорость открывания/закрывания ворот можно уменьшать или увеличивать с помощью кнопок SB5 и SB7 "+" соответственно и сохранить в EEPROM МК, нажав на кнопку Stop. Также скорость можно изменить после трёхкратного нажатия на кнопку Stop, при этом загорается светодиод HL1, сигнализирующий, что теперь кнопками SB5 и SB7 "+" можно изменять скорость доводчика и сохранять эти изменения, нажав на кнопку Stop, после чего светодиод выключается.

При срабатывании датчика открытия ворот начинает мигать светодиодный фонарь EL1 с периодом 1 с. Фонарь устанавливают на улице для индикации открытия ворот. Для управления скоростью вращения электродвигателя применён режим ШИМ (широтно-импульсной модуляции). С вывода микроконтроллера D3 ШИ-сигнал поступает на транзистор VT6, затем на транзистор VT8, которые усиливают его по мощности. Любое нажатие на кнопки или изменение режима работы сопровождается акустическим сигналом излучателя НА1, причём срабатывание концевых датчиков - три раза, остальные режимы - один раз.

Плата блока управления

Рис. 17. Плата блока управления

 

Плата с кнопками

Рис. 18. Плата с кнопками

 

Также на плате с кнопками присутствует кнопка Reset для перегрузки микроконтроллера. В случае зависания программы сторожевой таймер (WDT) автоматически перегрузит микроконтроллер. Размеры платы блока управления - 90x70 мм (рис. 17), платы с кнопками - 90x45 мм (рис. 18). Использованы монтажная плата и проводной монтаж (провод МГТФ-0,12). Вся электроника блока управления смонтирована в электромонтажной коробке на восемь автоматов (рис. 19). Для подключения датчиков и электродвигателя можно применить любые подходящие разъёмы, обеспечивающие потребляемый узлами ток (рис. 20). Транзистор VT8 установлен на теплоотводе рядом с электродвигателем. SB1-SB4 - это контакты датчиков положения двери, о них было сказано выше. При необходимости датчики можно снабдить светодиодами, для этого их надо собрать по схеме, показанной на рис. 16 справа внизу.

Монтаж блока управления

Рис. 19. Монтаж блока управления

 

Разъемы для подключения

Рис. 20. Разъемы для подключения

 

Поскольку для питания модуля А1 NRF24L01 требуется 3.3 В, а Arduino Nano от своего встроенного стабилизатора напряжения 3,3 В не может обеспечить его стабильную работу, модуль NRF24L01 запитан через модуль А4 Shield YL-105, в котором находится понижающий стабилизатор напряжения на 3.3 В. Для питания сервома-применён отдельный понижающий преобразователь напряжения А3 (LM2596 DC-DC HW-411), поскольку стабилизатору напряжения модуля Arduino Nano не хватает мощности для работы сервомашинки. Питание на неё подаётся через ключ на транзисторе VT1, включаемый транзистором VT2 по команде с выхода А2 модуля А6. Модуль А2 - понижающий импульсный блок питания с выходным напряжением 12 В и током нагрузки до 8 А.

Модуль Arduino Nano управляет приёмником и принимает от него три команды управления по последовательной шине SPI. По командам управления и по состоянию четырёх датчиков контроля этот модуль управляет выходными устройствами, приводом ворот и центральным замком.

Поскольку с начала разработки не было полного представления, что может понадобиться для реализации проекта, было решено собирать всё на макетных платах, чтобы по мере возникновения проблем их можно было бы устранять добавлением новых модулей или их заменой. В результате всё с трудом разместилось на плате с первоначального выбранными размерами. Можно применить постоянные резисторы МЛТ, оксидные конденсаторы - К50-35, неполярные - плёночные К73-17 или аналоги иностранного производства. Полевые транзисторы можно заменить любыми, лишь бы подходили по мощности. Реле К1 и К2 - с номинальным напряжением обмотки 12 В, тип 75.3777 (от "Жигулей") или аналогичные. Следует отметить, что механические датчики положения ворот несложно заменить ИК-датчиками приближения, доработки схемы управления при этом не потребуется. Однако практика показала, что в холодное время года ИК-датчики могут работать неустойчиво.

Передатчик в настройке не нуждается, а в приводе ворот настраивают датчики крайних положений ворот и доводчика на срабатывание. При первом включении данные скорости движения ворот и доводчика автоматически записываются в EEPROM микроконтроллера, если там уже были внесены какие-то данные, для записи значений скорости движения ворот и доводчика в EEPROM модуля Arduino Nano надо внести изменения в скетче в функции SETUP после строки EEPROM_Read(); разблокировать строку Limit_PWM[1] = 255; и после программирования и запуска программы заблокировать эту строку и снова прошить Arduino Nano, или с помощью кнопок в блоке управления отрегулировать скорость вращения мотора, если с EEPROM читается код 255, мотор вращаться не будет. Антенна приёмника вынесена с помощью удлинителя (ВЧ коаксиального кабеля) длиной 2 м за пределы металлической конструкции гаража. Все библиотеки, которые применены в программах, можно загрузить с сайта GitHub.

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

Видеофайлы, иллюстрирующие работу устройства, находятся здесь.

Автор: В. Киба, г. Волжский Волгоградской обл.