Схемы переделки освежителя уже были в интернете, но не нашел ни одной, чтобы полностью удовлетворяла мои пожелания, либо были без исходников, соответственно подогнать под себя не получалось. Решил писать прошивку сам. Это мой первый опыт, так что пожелания и замечания приветствуются.
Основное назначение переделки: увеличить интервалы между срабатываниями освежителя и добавить интерактивность (исключить срабатывание освежителя при нахождении человека в помещении и выполнить срабатывание после того, как человек покинет помещение, при условии, что человек там находился достаточно долго).
Работа автоматики основана на изменении уровня освещенности в помещении (включение и выключение света), что накладывает ограничение на выбор помещений, где будет расположен освежитель. Туалет без окон подходит идеально.
В качестве датчика света применяется красный светодиод в прозрачном корпусе*. При этом светодиод продолжает выполнять свои прямые обязанности.
При включении устройства выполняется калибровка датчика света. Перед калибровкой будет 10 секундная задержка, сопровождающаяся вспышками светодиода с частотой 1Гц. За это время нужно поместить освежитель на его рабочее место, светодиод желательно направить на источник освещения. Сразу после калибровки будет тестовое срабатывание освежителя. Перед каждым срабатыванием производятся быстрые вспышки светодиода в течении 2 секунд.
В схеме используются 2 кнопки. Одна производит принудительное срабатывание освежителя (у меня не используется, так как освежитель висит высоко), вторая по кругу меняет режимы работы. Режим работы сохраняется в энергонезависимой памяти EEPROM.
Алгоритм работы устройства:
1) «пшикаем» через равные промежутки времени, напр. раз в час, при условии, что свет выключен то есть в помещении никого нет.
2) если свет включается, запускаем таймер.
3) когда свет выключается:
1. если прошло мало времени (напр. меньше 2.5 минут), пшикать не надо.
2. если прошло больше, «пшикаем» и сбрасываем таймер.
Если после последнего срабатывания прошло меньше 15 минут, то не «пшикаем», так как аэрозоль еще не выветрился.
4) если свет долго не выключается (напр. больше часа), значит забыли выключить, продолжаем брызгать.
Режимы работы:
1) «Пшикаем» раз в час, минимальное время включения света - 2.5 минуты
2) -//- раз в час, -//- 5 минут
3) -//- каждые 3 часа, -//- 2.5 минуты
4) -//- каждые 3 часа, -//- 5 минут
Все режимы настраиваются в исходнике, который подробно прокомментирован.
Первоначально проект тестировал в Протеусе.
Когда дело дошло до датчика света, пришлось собрать модель на макетке.
Методом проб выяснил, что лучше всего подходят красные светодиоды в прозрачном корпусе. Чуть похуже оранжевые. Небольшой разброс параметров светодиодов на работу устройства не влияет.
В качестве управляющего транзистора подойдет любой маломощный N-канальный Logic Level мосфет. Такие обычно стоят в цепи питания процессора на материнской плате. Я свой выпаял со старой видеокарты (P0903BDG).
Ввиду простоты схемы решил не разводить печатную плата, разместил детали на макетке.
Диод D1 и конденсатор C1 припаиваются непосредственно к выводам мотора. Для подавления собственных выбросов контроллера на его выводы питания (или в непосредственной близости он них) нужно припаять керамический конденсатор C2 на 0.1 мкф.
В режиме покоя схема потребляет 6-7 микроампер. Раз в 8 секунд контроллер просыпается, опрашивает датчик. После этого на 1 мс вспыхивает светодиод. Двигатель включается на 500 мс, дальше крутится по инерции, обратно его крутит клапан баллона. Средний потребляемый ток двигателя 100 миллиампер. При таком режиме алкалиновых батарей хватит ооооочень надолго.
Исходник прошивки написан на СИ. Контроллер прошивал китайским UsbASP. Фьюзы по умолчанию (FF/6A). EEPROM прошивать не нужно!
UPD: Добавил вторую версию прошивки. Убрал выбор минимального времени включения света. Теперь только 2.5 минуты. Теперь три режима: "пшикаем" через час, 3 часа и 6 часов. По умолчанию стоит 2 режим. Тестовый "пшик" при включении устройства отключен (если требуется, нужно раскомментировать 171 строку в исходнике).
* работа светодиода в качестве датчика света основана на заряде паразитной емкости ног контроллера и светодиода и последующем разряде с подсчетом времени, которое потребуется для разряда до нуля. Чем ярче свет, тем быстрей идет разряд.
Прикрепленные файлы:
- airwick13_v1_1.zip (45 Кб)
- airwick13_v1_2_light.zip (44 Кб)
Комментарии (62)
|
Я собрал (0) |
Подписаться
Для добавления Вашей сборки необходима регистрация
[Автор]
[Автор]
Предлагаемые отличия:
1. Сохранить переключатель управления.
2. Отличать день/ночь. В помещении возможна подсветка через матовое окно.
3. Уменьшить частоту до минимально возможной 128 кгц. Что уменьшит потребление от батареек.
4. Знать и учитывать состояние балона. Моргать диодом когда балон кончился. Родная схема это может, а мы что нет?
4. Ну и чтоб все это вместить придется написать на асеемблере.
Если автору будет интересно я приведу схему и код.
[Автор]
[Автор]
[Автор]
Чой то я запутался в моделях.
У меня с откидывающейся задней крышкой и колесиком управления сзади и фотодатчиком.
У вас другая модель, я сейчас посмотрел недавно купленный, там вообще схема вдвое проще открытый кристал управления, 1 транзистор и 1 стабилитрон. Несколько резисторов и конденсаторов. Все. Фотодатчика нет в принципе. Он что тупо пшики считает? И на чужие балоны не реагирует?
Есть еще 3 модель, видел на картинках в инете. С листиком на фасаде балона. Что там внутри не знаю.
Идея использовать дешовый пир без линзы френеля или фоторезистор/фототранзистор. Считать только интервалы и определять состояние балона. Самый тупой вариант приклеить микрокнопку на верх тунеля, где ходит клапан балона. Поднялось вверх, нажало кнопку, в балоне что еще есть, можно пшикать.
[Автор]
[Автор]
Она не маленькая не пойму куда ее пристроить.
[Автор]
Если взять прошивку из папки Debug, то устройство вроде бы начинает работать нормально, но только первый цикл. Дальше интервалы снова увеличиваются до 5 минут и пшикание происходит даже при включенном свете.
Кстати, может только у меня так, но мотор у меня висит на 6-й ноге контроллера, а выбор режимов на 7-й.
В чем может быть косяк?
[Автор]
[Автор]
[Автор]
[Автор]
У меня не оказалось под рукой красных светодиодов, был только прозрачный белый, а у него оказалась большая ёмкость. Поэтому пришлось увеличить переменную для определения разряда.
Так же поменял функции мигания и замера ёмкости.
Изменил алгоритм работы определения света.
[Автор]
[Автор]
[Автор]
[Автор]
Яркость замеряется при первом включении, после мигания светодиодом 10 раз. Пока мигает светодиод нужно успеть расположить освежитель на своём месте. После этого он запомнит эту яркость как эталон(до следующего отключения питания) и будет использовать её при работе.
[Автор]
Рекомендую прошить эту версию http://cxem.net/house/files/1-464_airwick13_v1_2_light.zip
Инструкция по первоначальной калибровке в конце исходника main.c Это обычный текстовик.
[Автор]
[Автор]
Reset отключал фьюзами, как и ISP. Кто-нибудь из авторов сможет добавить в свою прошивку еще 2 режима по кнопке Mode- не пшикаем по таймеру, а только по фотодатчику и пшикаем только по таймеру каждые 3 часа без реакции на фотодатчик.
[Автор]
Проверьте на прошивке 1.2. Если будет тоже самое, то проблема 100% в железе.
https://github.com/serg7461/airwick
В текущей версии прошивки 7 режимов:
1) Пшикаем только по датчику света
2) Пшикаем 1 раз в час, минимальное время включения света - 2.5 минуты
3) -//- каждые 3 часа,
4) -//- каждые 6 часов.
5) Пшикаем 1 раз в час, игнорируя датчик света
6) -//- каждые 3 часа,
7) -//- каждые 6 часов.
По умолчанию стоит 3 режим.
Мне пока некогда тестировать. Так что если что, пишите.
Прямая ссылка на прошивку: https://github.com/serg7461/airwick/releases/download/v1.3.1/main.hex
Ну и тут прикреплю
[Автор]
[Автор]
Вот его плата в спринте
Например если освежитель стоит в коридоре и нужно пшикать только при включенном свете или наоборот, только при выключенном.
8) Пшикаем 1 раз в час, только при включенном свете
9) -//- каждые 3 часа,
10) -//- каждые 6 часов.
11) Пшикаем 1 раз в час, только при выключенном свете
12) -//- каждые 3 часа,
13) -//- каждые 6 часов.
Пошивка v1.4.1
[Автор]
WC_MODE вкл (раскомментировано) по умолчанию стоит режим №3
Пшикаем только по датчику света
Пшикаем 1 раз в час, минимальное время включения света - 2.5 минуты
-//- каждые 3 часа,
-//- каждые 6 часов.
Пшикаем 1 раз в час, игнорируя датчик света
-//- каждые 3 часа,
-//- каждые 6 часов.
WC_MODE выкл (закомментировано) по умолчанию стоит режим №2
Пшикаем 1 раз в час, игнорируя датчик света
-//- каждые 3 часа,
-//- каждые 6 часов.
Пшикаем 1 раз в час, только при включенном свете
-//- каждые 3 часа,
-//- каждые 6 часов.
Пшикаем 1 раз в час, только при выключенном свете
-//- каждые 3 часа,
-//- каждые 6 часов.
Прошивка v1.4.2 - main_WC-on.hex
Прошивка v1.4.2 - main_WC-off.hex
выложил исправленные версии.
Прошивка v1.4.3 - main_WC-off
Прошивка v1.4.3 - main_WC-on
В режиме "туалет" мигает два раза, в другом три.
Прошивка v1.4.4_WC-off.hex
Прошивка v1.4.4_WC-on.hex