Управление прожекторами при помощи Arduino

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Здравствуйте, уважаемые хабрчане! Друг купил прожекторы, которые управляются при помощи инфракрасного пульта, и попросил автоматизировать их, чтобы каждый час была возможность выставить нужный цвет и яркость. Идея выставить настройки для аквариума, чтобы освещение переключалось автоматически каждый час, в течении 24 часов.

Для реализации проекта была выбрана плата Arduino UNO, так как есть готовые библиотеки для считывания и отправки инфракрасного сигнала. Вначале были прочитаны команды пульта, используя микросхему VS1838B (Ардуино библиотека писала, что это протокол LG и используются 28 бит). Попробовал генерировать такие же сигналы используя функцию sendLG - ничего не получилось (осциллоскопа нету, увидеть сигнал в живую возможности не было). Поэтому 8 команд (включить, выключить, ярче, темнее, белый, красный, синий, розовый) были прочитаны в режиме raw , и каждой команде соответствовал свой массив из 67 unsigned int значений. Конечно это плохое решение, потому что занимает 60% динамической памяти, но других вариантов как решить эту задачу у меня не было.

Далее была работа над меню устройства. Необходимо было дать возможность выставить текущее время, а также выбрать параметры освещения под каждый час. Был взят символьный дисплей 20х4 (использовал параллельное подключение, т.к. переходник на I2C глючил) и три кнопки, всего получилось семь окон для символьного дисплея. Для реализации меню пришлось повозится, используется Конечный автомат (Finite-state machine) с 77 состояниями.

Далее было необходимо собрать всё в корпус. Для этой цели была выбрана коробка от смартфона. Платы заказывать не стал, т.к. они дороже китайского Ардуино. Всё собрано и соединено проводами, а также обмотано изолентой и приклеено двусторонним скотчем. Из корпуса выходит USB провод, он используется для питания устройства, а также для программирования (если будет необходимость что-то изменить). Также из корпуса выходит три провода для инфракрасных светодиодов (чтобы управлять тремя прожекторами), и один провод - общая земля.

Вот и готов мини-проект, прикладываю код (на случай, если кто-то захочет собрать тоже самое или улучшить) и видео.

Источник: https://habr.com/ru/post/563946/


Интересные статьи

Интересные статьи

Все мы знакомы из школьной программы с построениями при помощи циркуля и линейки. А что будет, если вдруг циркуль затеряется? Можно ли при помощи одной линейки строить ещё что-то нетривиа...
В прошлой части мы поговорили о советах директору по разработке бизнес-процесса в Битрикс24, сейчас же я постараюсь дать советы руководителям отделов, поскольку по моему опыту почти всегд...
Предыстория Когда-то у меня возникла необходимость проверять наличие неотправленных сообщений в «1С-Битрикс: Управление сайтом» (далее Битрикс) и получать уведомления об этом. Пробле...
Disclaimer: Автор любит короткие и прямые костыли, а также нежно обожает свободный открытый софт за ту гибкость и масштабируемость, что тот дает. Целью данной статьи является желание попиариться...
Ранее в статье «JIRA: правила своевременного приготовления вкусного ПО. TLDR 1: границы возможностей» была  предпринята попытка унификации общих требований по применению JIRA в случае управления ...