Изготовление и установка электропривода на рулонные шторы

Электропривод выполнен на базе миниатюрного 4-х фазного шагового двигателя 28BYJ-48-12V . Двигатель имеет редуктор с передаточным числом приблизительно 64:1, что обеспечивает достаточно приличный крутящий момент для такого размера двигателя и скорость вращения ~15 об/мин.

Контроллер

В качестве мозга электропривода использован микроконтроллер Atmega328. Он общается с внешним миром через шину RS485, по протоколу ModBus, шина выполнена на микросхеме MAX485. Шаговый двигатель подключается через транзисторную сборку Дарлингтона — ULN2003. В качестве датчика нулевой точки использован датчик Холла A3144, он служит для определения верхней нулевой точки (Zerro) положения шторы. Еще один датчик Холла  (Mode) припаян непосредственно на самой плате  и выполняет следующие функции:

  • Активация режима обучения
  • Аварийный останов двигателя
  • Сброс контроллера на заводские установки

Дополнительно на плате контроллера предусмотрены входы для фоторезистора (например vt90n) и герконового датчика открытия окна.

Схема электрическая принципиальная электропривода рулонных штор на шаговом двигателе 28byj-48

Код прошивки микроконтроллера написан в среде Arduino IDE и находится в открытом доступе на моей странице GitHub.

Принцип работы

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

Для того чтобы контроллер знал текущее положение шторы его необходимо обучить. Для этого в ручную опускаем штору в нижнее положение на необходимую длину, подносим кратковременно магнит к датчику Mode на контроллере (датчик установлен в районе светодиода), при этом светодиод начнет мигать, сигнализируя активацию режима обучения, на двигатель подается управляющий сигнал и штора начинает двигаться вверх до верхней нулевой точки где останавливается по сигналу от датчика Холла установленного в креплении корпуса контроллера. Контроллер при этом запоминает количество шагов двигателя и сохраняет это значение в энергонезависимой памяти EEPROM микроконтроллера.

Если к датчику Mode поднести кратковременно магнит во время движения шторы, то контроллер сразу остановит движение. 

Для сброса контроллера на заводские установки необходимо поднести магнит к датчику Mode не менее чем на 5 секунд, при этом светодиод начнет быстро мигать, контроллер перезагрузится и установит все значения параметров на заводские.

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

Если в конфигурации контроллера активировать функцию «Определение текущего положения шторы после подачи питания» — регистр check pos flag (0- выключено, 1 — включено), то сразу после подачи напряжения на контроллер, штора начнет движение вверх до верхней точки, в этот момент контроллер запоминает количество шагов и по достижении верхней нулевой точки, штора возвращается в положение в котором находилась до момента подачи питания. Эта функция служит для определения положения шторы например когда отключили электричество. Если эта функция отключена, то при подачи питания штора остается в текущем положении до момента подачи команды set_position, как только контроллер получит первую, после подачи питания, команду  он сначала запустит функцию определения текущего положения шторы и только после этого выставит положение шторы поступившее командой set_position.

Таблица данных регистров ModBus

Стандарт ModBus предусматривает отдельную таблицу для каждого типа данных, в контроллере же все данные хранятся в одном массиве в виде перекрывающихся таблиц. Значение всех регистров и адресов представлены в таблице:

Таблица данных регистров ModBus

Корпус контроллера

Корпус для устройства был спроектирован в программном комплексе Autodesk Fusion 360 и распечатан на 3D принтере из ABS пластика. Точность печати меня не устроила, поэтому детали корпуса были зашпатлеваны, отшлифованы, загрунтованы и окрашены акриловой краской из баллончика, это скрыло все изъяны 3D печати.  После чего была изготовлена силиконовая форма и корпуса были отлиты из жидкого полиуретана. Про изготовление корпусов методом литья жидкого полиуретана в силиконовые формы постараюсь описать отдельной статьей.

Корпус спроектировал в программе Autodesk Fusion 360
Скачать: Детали корпусу в STL формате
Скачано: 482, размер: 562.0 KB, дата: 12.Янв.2019

Доработка механизма рулонной шторы

Немного про организацию моего подключения контроллеров электропривода рулонных штор

У меня в каждом окне стоит «комнатный» контроллер построенный на Arduino UNO + Ethernet Shield W5100, в задачи которого входит сбор показаний температуры воздуха в приточном клапане вентиляции, температуры радиаторов отопления (DS18B20), температуры и влажности помещения (DHT22), передача сигнала датчика движения (DSC LC-101) и датчика открытия окна (геркон), а так же управление сервоприводом приточной вентиляции. 

Я решил добавить в него еще и функцию прослойки между шиной RS485 рулонных штор и сервером IoBroker, данные в который передаются по протоколу MQTT. Таким образом у меня на этот «комнатный» контроллер легли функции мастера сети ModBus. Все контроллеры штор одного окна подключены по шине RS485 к мастеру, он с периодом 2 секунды опрашивает подчиненных (контроллеры штор) и отдает текущие данные по протоколу MQTT на сервер умного дома IoBroker.

Так же мастер принимает команды по MQTT от сервера и отправляет их подчиненным. Так как подчиненных несколько и мастер не может одновременно отправить управляющие команды сразу всем, а по MQTT практически одновременно может поступить несколько команд (например команда открыть 1,2 и 3 штору) то мастер отработает только первую. Чтобы команды не терялись на мастере был организован буфер, что то подобное FIFO (англ. first in, first out — «первым пришёл — первым ушёл»). пришедшие данные по MQTT записываются в массив после чего мастер по в общем цикле программы проверяет свободность шины RS485 и отправляет команду ModBus из нулевого элемента массива очереди, сдвигает данные команд массива влево и цикл повторяется пока в массиве очереди есть данные.

Подключение электропривода

Для подключения контроллера используется всего 4 провода, 2 из них это +-12 В — питание контроллера и двигателя, и 2 провода для шины RS485.

Верхняя плата (левый)
Нижняя плата контроллера (левый)
Скачать: Гербер файлы плат контроллера
Скачано: 209, размер: 166.7 KB, дата: 12.Янв.2019

Фотографии устройства

« из 4 »

Список и расположение элементов на платах

Видео работы электропривода

Подписаться
Уведомлять
guest

1 Комментарий
Старые вначале
Новые вначале По голосам
Межтекстовые Отзывы
Посмотреть все комментарии
Елена
Елена
2 лет назад

Пишу, чтобы просто выразить свое восхищение! Вы возвращаете веру в разумность человечества.

1
0
Поделиться своими мыслямиx