![]() |
![]() |
|||||||||||||||
Освежитель воздуха управляемый освещением
Автор: kramolnic Недавно приобрёл автоматический освежитель воздуха. Это устройство, которое периодически распыляет ароматический аэрозоль из вставляемого внутрь заменяемого баллона. Внутри расположен таймер, управляющий электродвигателем, который через редуктор при помощи нехитрого механизма нажимает на клапан баллончика. Таймер периодически на короткое время (около 1сек.) подаёт питание на электродвигатель. Работает от двух элементов питания типа АА. К сожалению устройство оказалось не очень удобным:
Захотелось как-нибудь устранить эти недостатки. В результате экспериментов была разработана схема, которая позволяет управлять освежителем с помощью освещения в туалетной комнате. Устройство реализует следующий алгоритм работы:
Доработанный освежитель стал удобнее:
Принципиальная схема устройства Основа устройства — крохотный микроконтроллер (U1) ATtiny10-TSHR в шестилапом корпусе SOT23-6 производства Atmel. Фоторезистор R1 и резистор R2 образуют светоуправляемый делитель напряжения. Теневое сопротивление фоторезистора — 500кОм, поэтому в темноте на входе PB2 микроконтроллера присутствует высокий логический уровень (около 2.5В при питании 3В). При освещении фоторезистора его сопротивление уменьшается до ~24кОм, на входе PB2 появляется низкий логический уровень (около 600мВ), вызывающий прерывание микроконтроллера и вывод его из спящего режима. При подобранных номиналах ток через резисторы делителя составляет не более 27мкА в активном режиме и не более 5мкА в режиме ожидания (в темноте). Светодиод D1 служит для индикации состояния устройства. С выхода Vdrive (выход PB0 контроллера U1) через резистор R4 подаётся управляющий сигнал на базу ключевого транзистора, оставленного на штатной плате освежителя. Светодиод D1 — из набора ЧИП-светодиодов EK-HL1206RGBWY, сверхяркий, зелёного цвета (тип 1206, паспортный макс. ток 20мА, напряжение падения 3.0 … 3.3В, угол свечения 130град.) Выбранный светодиод даже при малом токе питания обеспечивает значительную яркость свечения. Фоторезистор — VT90N2. При применении другого может потребоваться корректировка R2. Остальные резисторы — SMD типоразмера 1206. Управляющая программа Управляющая программа (исходный код на GitHub Gist) разработана на языке Си для компилятора AVR-GCC. После подачи питания микроконтроллер настраивает периферийное оборудование, а затем в целях экономии энергии погружается в глубокий сон (режим Power down). Ядро контроллера тактируется от встроенного тактового генератора 128кГц с делителем 256. Минимальная частота тактирования выбрана в целях снижения энергопотребления. При засветке фоторезистора (включили свет в помещении) возникает прерывание, по которому контроллер просыпается и переходит в активный режим. Контроллер запускает таймер, настроенный на частоту 1Гц. По прерыванию от таймера происходит получение состояния фотодатчика и подсчет «светового» и «темнового» времени: если свет горит, увеличивается счетчик светового времени и сбрасывается счетчик темнового времени. Если свет не горит, увеличивается счетчик темнового времени. В главном цикле программы в активном режиме проверяются значения счетчиков времени. Если свет погашен более 5сек., то проверяется значение светового времени: если свет был включён более 150сек., то подается питание на двигатель освежителя воздуха. Наконец, контроллер запускает сторожевой (watchdog) таймер на время 1сек. и переходит в состояние ожидания сброса. По срабатыванию сторожевого таймера происходит перезагрузка контроллера и переход в начальное состояние - в т.ч. снимается питание с двигателя. Отмечу многофункциональное назначение светодиода D1. После освещения фоторезистора устройство активируется, начинается отсчёт «светового времени», но светодиод при наличии освещения погашен с целью экономии батарей (свечение при освещении всё равно малозаметно). Если теперь фоторезистор затемнить, светодиод будет мигать, отсчитывая секунды — это индикация нормальной работы программы и таймера. Если до окончания «темнового времени» вновь осветить фоторезистор, устройство продолжит отсчёт «светового времени», но светодиод вновь будет погашен. Таким образом можно оценить чувствительность и работоспособность фотодатчика, найти наилучшее размещение освежителя в помещении по отношению к осветительным приборам. Наконец, если разрядятся батарейки (ниже 1.8В), контроллер перестанет работать и светодиод перестанет мигать. Прошивка микроконтроллера Запрограммировать эту блоху (ATtiny10) оказалось не слишком просто. Универсальный программатор Тритон, который я использую для программирования контроллеров AVR в DIP-корпусах, не содержит в своей базе микросхему ATtiny10. Пришлось искать другой способ программирования. Удалось найти исходный код утилиты pi_tpi для программирования ATtiny4/5/9/10 при помощи одноплатного компьютера Raspberry Pi («малина»). Утилита позволяет читать и записывать память микроконтроллеров Attiny через порты ввода-вывода (GPIO). У меня в наличии имеется плата одной из первых версий: Raspberry Pi 1 Model B 512 (2011.12). При попытке использовать pi_tpi оказалось, что утилита разработана для более новых версий Raspberry Pi — у моей (старой) малины отличается начальный адрес портов GPIO (0x20200000 вместо 0x3F200000 для новых версий). Поэтому исходная версия утилиты была форкнута в мой репозиторий pi_tpi на GitHub где я внёс несколько исправлений. На малине установлена операционная система Raspbian. Версии ядра Linux и компилятора avr-gcc: Сборка утилиты pi_tpi выполняется из консоли следующим образом:
После сборки в каталоге должен появиться исполняемый файл утилиты (tpiflash). Для просмотра списка параметров программы следует запустить её без параметров. Для подключения микроконтроллера к программатору использована панелька HST6-W (DIP6-SOT23-6) производства ROMSERVICE. Для простоты использована беспаечная макетная плата. Схема подключения микроконтроллера к Raspberry Pi: При подключении к Raspberry Pi следует соблюдать осторожность — порты GPIO здесь никак не защищены и могут быть легко повреждены. Контроллер подключён к линии питания +5В. При питании от линии 3.3В оказалось, что память контроллера читается, но запись произвести не удаётся. Для проверки подключения и чтения памяти чипа используется команда: ./tpiflash r 1e9003 В консоль будет выведен дамп памяти. При недоступном чипе будет выведено сообщение: Error: Cannot connect to ATTiny (Error -1) Для компиляции прошивки необходимо запустить сборку с целью airfresher: make airfresher Результирующий файл — airfresh.bin ./tpiflash w 1e9003 airfresh.bin Конструкция Печатная плата устройства выполнена с помощью плёночного фоторезиста Ordyl Alpha 350. Фотошаблон выполнен на матовой плёнке KIMOTO Laserfilm для лазерной печати. Плёнка дорогая, но очень качественная и используется для фотошаблонов небольшими фирмами, которые производят штампы и печати. Тонер уплотнён аэрозолем Density Toner. Засветка самодельной матрицей из УФ светодиодов. Внешний вид распаянной платы: Применённый микроконтроллер размером не превышает размер светодиода =) При выборе автоматического освежителя для доработки следует обратить внимание на возможность его лёгкой разборки — в приобретённом экземпляре моторный блок крепится на 4 самореза под крестовую отвёртку и допускает многократную разборку. Вероятно, освежители иных производителей могут иметь конструкцию, защищённую от разборки. На штатной плате освежителя оставлены: переключатель режимов работы (не используется), ключевой транзистор двигателя (Q1), защитный диод (D1), контактные ламели батарейного отсека, керамические конденсаторы (C1, C2). Удалены микросхема таймера (U1) и резистор (R1). Отпаивать элементы следует с осторожностью из-за низкого качества материала платы — при перегреве дорожки легко отслаиваются, плата тонкая и легко деформируется. Разработанная плата фотодатчика тремя проводами (синий — управление двигателем, красный — плюс, чёрный — минус/GND) подключена к контактам питания и базы транзистора Q1 (площадка резистора R1) на плате освежителя и размещена в корпусе освежителя рядом с батарейным отсеком, снаружи от моторного блока. Фоторезистор выведен наружу через отверстие в крышке устройства. Обратите внимание, чтобы светящийся светодиод не засвечивал каким-либо образом фотодатчик, иначе устройство не будет уходить в режим ожидания. При пайке платы следует особое внимание обратить на полярность включения светодиода и полярность подключения к источнику питания. Несмотря даже на предварительную проверку полярности светодиода мультиметром, при сборке уже второго устройства мне «удалось» подключить светодиод задом-наперед — при первом же включении он ожидаемо вышел из строя. Провода после подпайки к плате датчика я залил термоклеем из клеевого пистолета и продул каплю клея феном паяльной станции при температуре ~150 градусов для улучшения заливки. Собранная без ошибок конструкция начинает работать сразу. При проверке и эксплуатации устройства следует соблюдать осторожность во избежание попадания аэрозоля в глаза. После разработки было изготовлено 4 экземпляра данного устройства. При постоянной эксплуатации в течение полугода начальный баллон аэрозоля и батарейки не менялись ни разу. Заключение Было разработано и испытано устройство, обеспечивающее управление освежителем воздуха при помощи фотодатчика. Устройство обеспечивает экономичное расходование аэрозоля освежителя воздуха «по необходимости». Представленная схема может быть полезна не только для управления автоматическим освежителем воздуха, но и для управления любыми другими устройствами с логическим входом. Данная конструкция и прошивка может без ограничений использоваться в некоммерческих целях — любой желающий может повторить её для использования у себя дома или на предприятии. Ссылки
Файлы: Все вопросы в Форум.
|
|
|||||||||||||||
![]() |
![]() |
![](/templates/radiokot_classic_neew/images/datasheet.png)
![](/templates/radiokot_classic_neew/images/dorogi.png)
![]() |
![]() |
|||
|
||||
![]() |
![]() |