Конструкция это из тех про которые говорят что весь прогресс от лени.
В общем представляю блок управления вентилятором для ванной. Выполненный на микроконтроллере (МК) Atmega8 с использованием емкостного датчика влажности HCH-1000-002
Что может устройство:
В автоматическом режиме включать/выключать вентилятор по установленным в настройках порогам влажности, пороги включения/выключения выставляются раздельно.
В ручном режиме можно включить/выключить вентилятор соответствующими кнопками.
В обоих режимах осуществляется индикация, состояния вентилятора (Включен/Выключен), текущей влажности (%), режима работы (Ручной/Автомат).
И так начнем, что мы имеем, а имеем мы вот такой вентилятор
дернешь за веревочку - включится, еще раз дернешь — выключится, дешево, сердито и … неинтересно)) Тем более что там даже решетка под датчик влажности предусмотрена, но вот готовых с датчиком я в природе не встречал, хотя говорят бывают.
Открываем вентилятор
и видим что места там для схемы предостаточно.
Делать что то без МК мне как то не интересно, поэтому тут выбор не встал, Atmega8 как раз подходит. Датчик влажности … вот тут дилема, есть хорошие цифровые датчики влажности и температуры в одном корпусе SHT10
управляется через I2C, но дорогие заразы, стоит в районе 500 руб., а есть дешевые емкостные датчики HCH-1000-002
Всего 145 руб…. вообщем жаба победила))
Ну поскольку есть МК, есть параметры которые нужно настраивать, значит нужен дисплей. Есть хороший дисплей от Nokia 1110, недорогой и опыт работы с ним имеется, но ему желательно включать подсветку, даже при внешнем освещении, а в данной конструкции подсветка по моему лишняя, опять же лишний ток, поэтому остановился на более простом дисплее от Nokia 3310, на нем при внешнем освещении и без подсветки все отлично видно.
Единственная проблема с этими дисплеями это контакты, у левых дисплеев они напылением, так что не припаяешься. Изначально хотел поставить резинку от старых часов, она вроде как для этого предназначена, но не вышло, стал искать чем бы его законтачить и наткнулся вот на такой разъем, они обычно для плоских шлейфов используются
В готовом виде его использовать не получилось, шаг контактов совсем другой, а вот контактики из него повыдергивал. На дисплее держатся довольно крепко и контакт надежный получается
надел таким образом все контакты, по два на контакт и припаял к плате.
А вот и от разобранного монитора кнопочки пригодились))
Как под них выпилить такие фигурные отверстия не додумался, оторвал, поставил прямоугольные)
Как все это работает.
Принцип измерения влажности, т.е. емкости (датчик то емкостной) взял довольно стандартный и многократно описанный, заряжаем емкость до порогового значения и измеряем время заряда, вернее на выходе получаем некое количество импульсов, количество которых напрямую зависит от подключенной емкости. Далее переводим эту абстрактную величину в пикофарады а из них по графику из даташита на датчик вычисляем % влажности
Схема
Все просто и стандартно, управление вентилятором осуществляется симистором через опторазвязку.
Плата
Плату делал под те детали что есть в наличии, при желании повторить с другими деталями и размерами плату соответственно придется подправить.
Оставлять плату открытой не решился, мало ли что снаружи попадет, поэтому подобрал подходящий по размеру корпусок, вернее огрызок от корпуса)) Вот что в итоге получилось
Крепил все термоклеем.
Ну а как все выглядит в собранном виде Вы уже видели на первом фото.
Сборка.
Тут единственное что наверное стоит напомнить, на плате присутствует напряжение 220 в., об этом не стоит забывать. В остальном все стандартно, двухсторонняя плата с наличием SMD элементов. Поскольку эксплуатируется устройство в условиях повышенной влажности, плату залакировал.
Органы управления
Управляется сей девайс 4-мя кнопками, условно в схеме они названы MENU, OK, UP, DOWN.
В устройстве 2 режима работы - рабочий режим и режим настроек.
В рабочем режиме
кнопкой OK осуществляется переключение режима Ручной/Автомат, кнопкой UP производится переключение в режим Ручной + включение вентилятора, кнопкой DOWN производится переключение в режим Ручной + выключение вентилятора. Кнопкой MENU осуществляется вход в настройки программы.
В режиме настроек
кнопками UP/DOWN осуществляется перемещение вверх/вниз по пунктам меню и изменение параметров +/-
кнопкой ОК осуществляется вход в выбранный пункт меню и сохранение измененных настроек.
кнопкой MENU осуществляется возврат на предыдущий уровень в меню, вплоть до выхода в рабочий режим.
Настройка.
Изначально требуется откалибровать устройство, для этого нужен образцовый конденсатор, образцовый это условно, достаточно точно знать его емкость, на крайней случай приблизительно, т.е. то что на нем написано с учетом его погрешности на крайний случай тоже сгодится. Как выяснилось конденсатор нужно припаивать именно туда, куда будет припаян датчик влажности, даже если это всего пару сантиметров удлинительных проводов, иначе при калибровке их емкость не будет учтена. Калибровочный конденсатор можно использовать любой в пределах от 300 до 400 пф, но желательно взять 330 пф, так как это будет примерно середина диапазона датчика. И так припаяли конденсатор, заходим в меню калибровка
кнопками UP/DOWN выставляем емкость конденсатора в соответствии с тем что припаяли и нажимаем кнопку ОК, все калибровка произведена. Для того чтобы не сбить настройку, случайно повторно выполнив калибровку, но уже с подключенным датчиком, сделал небольшую защиту. Калибровка выполняется только в том случае если сохраненное значение равно "0", соответственно после калибровки можно сколько угодно жать на кнопочку, ничего не произойдет. Но как быть если все же понадобится перекалибровать? Для этого есть DIP переключатель, по схеме названый "Сброс", при его замыкании результаты калибровки обнуляются и можно заново калибровать.
Посмотреть результат калибровки и при необходимости подкорректировать его можно в пункте меню Коррекция
Собственно что это за цифры? Это коэффициент пересчета количества импульсов прошедших при зарядке конденсатора (иначе, времени заряда) в емкость в пф. только выводится без запятой, 265 это на самом деле 2,65
Пример: Припаиваем конденсатор 330 пф, при измерении этой емкости получается 875 едениц, 875/330=2,65151515.... округляем до трех знаков, убираем запятую и получается 265.
Настройка порогов включения/выключения вентилятора, тут все просто, заходим в соответствующее меню
выставляем необходимое значение, незабываем нажать ОК чтоб измененные значения сохранились в энергонезависимой памяти.
Последний момент касательно настроек это DIP переключатель "Дисплей", для чего он? Кто сталкивался с дисплеями Nokia 3310 наверное уже догадался, для остальных поясню, есть у этих дисплеев одна особенность, у фирменных и у левых дисплеев вывод информации происходит немного по разному, вот чтоб не делать разные прошивки под разные дисплеи, сделал переключатель.
Вот собственно и все, для тех кто решится повторить это устройство, за точность показаний (правильнее наверное будет сказать за соответствие показаний реальным данным) не ручаюсь ибо все расчеты опираются только на график из даташита, а как точно откалибровать датчик влажности в домашних условиях я увы не знаю. Но соответствие в данном случае и не особо нужно, Ведь пороги включения/выключения вентилятора все равно нужно выставлять чисто визуально по реальным условиям. А работает все четко, мне нравится, не надо теперь за веревочку дергать))
В архиве files.rar прилагаю схему, спецификацию, плату МК, плату управления, плату дисплея в формате DipTrace, кто еще не пользовался данным комплексом программ, настоятельно рекомендую, не пожалеете. Также в архиве в виде jpg файлов: схема, спецификация, монтажные схемы на все платы. Проект в протеусе, для желающих посмотреть как это работает, он правда упрощеный в части управления вентилятором, но для демонстрации работы этого достаточно. Ну и сама прошивка, по отдельности ind.hex, ind.epp и одним файлом ind.rom. При прошивке из CodeVisionAVR рекомендую прошивать по отдельности, у меня по крайней мере при прошивке одним файлом были проблеммы. Фьюзы при прошивке из CodeVisionAVR выставляются так:
Источник
|