Автоматические жалюзи на Arduino

в 10:44, , рубрики: arduino, diy или сделай сам, ir remote, метки: ,

Автоматические жалюзи на Arduino

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

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

Главным препятствием установки двигателя был штатный червячный привод изменения угла поворота створок. Его наличие блокировало возможность внутренней установки мотора, в то время как размещение двигателя снаружи, на месте штатной ручки, также было весьма затруднительно. В конечном итоге было принято решение целиком демонтировать ручной механизм и установить мотор во внутреннюю часть жалюзи.

В качестве двигателя был использовал мотор-редуктор GM12-N20VA Micro Geared Motor:
Автоматические жалюзи на Arduino
Данный двигатель обладает следующими характеристиками:

  • Рабочее напряжение: 2 — 5 В
  • Номинальное напряжение: 5 В
  • Передаточное отношение: 100:1
  • Скорость без нагрузки: 145 об/мин
  • Ток без нагрузки: 40 мА
  • Скорость под нагрузкой: 100 об/мин
  • Ток под нагрузкой: не менее 150 мА
  • Крутящий момент под нагрузкой: 0,2 кг/см
  • Ток при блокировке: 520 мА
  • Крутящий момент: 0,78 кг/см
  • Размер (Д х Ш х В): 24 x 12 x 10 мм
  • Выходной вал: D-образный, d=3 мм, длина 10 мм.

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

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

К выходам Output 1 и Output 2 микросхемы подключен мотор, в зависимости от сигналов на ногах Input 1 и Input 2 двигатель крутится в одну или другую сторону, аналогично и для второго канала.

С датчиком положения оказалось все не так просто, как я предполагал ранее. Из всех вариантов его конструкции я остановился на потенциометре, установленным на одну ось с двигателем, который в последствие был подключен к АЦП контроллера.
Автоматические жалюзи на Arduino

К моему удивлению с датчиком освещенности проблем оказалось меньше всего. Я использовал солнечную батарею, извлеченную из недорогого светодиодного фонарика, купленного в хозяйственном магазине. Сама крышка фонарика послужила неплохим корпусом.
Автоматические жалюзи на Arduino

Для дистанционного управления я использовал ИК-приемник TSOP31236 с пультом из набора Мастер КИТ, но в данном случае можно использовать любой другой.
Автоматические жалюзи на Arduino

Целиком схема выглядит следующим образом:
Автоматические жалюзи на Arduino

В зависимости от данных, полученных на АЦП с датчика освещенности, створки жалюзи перемещаются в то или иное положение, при этом текущее положение створок контролируется датчиком, в качестве которого выступает потенциометр, подключенный к аналоговому входу Adruino.

Для работы с ИК пультом я не стал изобретать велосипед и воспользовался уже готовой библиотекой IRremote.

Вот собственно видео иллюстрирующее работу:

В виду отсутствия солнечной погоды, чувствительность датчика была снижена.

В перспективе хотелось бы перевести систему на более “серьезный” микроконтроллер, разместить все элементы компактно, на одной печатной плате и спрятать в корпус.

Автор: Gho_st

Источник

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js