» » Модуль управления вентилятором на микроконтроллере

 
 
 

Модуль управления вентилятором на микроконтроллере

Разместил hsl 25 июня 2010. Просмотров: 37 345

22 Доброго времени суток сограждане!
Хочу вот поделится своей конструкцией.
Конструкция это из тех про которые говорят что весь прогресс от лени.
В общем представляю блок управления вентилятором для ванной. Выполненный на микроконтроллере (МК) 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 | Файл 594,37 Kb загружен 237 раз. прилагаю схему, спецификацию, плату МК, плату управления, плату дисплея в формате DipTrace, кто еще не пользовался данным комплексом программ, настоятельно рекомендую, не пожалеете. Также в архиве в виде jpg файлов: схема, спецификация, монтажные схемы на все платы. Проект в протеусе, для желающих посмотреть как это работает, он правда упрощеный в части управления вентилятором, но для демонстрации работы этого достаточно. Ну и сама прошивка, по отдельности ind.hex, ind.epp и одним файлом ind.rom. При прошивке из CodeVisionAVR рекомендую прошивать по отдельности, у меня по крайней мере при прошивке одним файлом были проблеммы. Фьюзы при прошивке из CodeVisionAVR выставляются так:



Замечания, пожелания принимаются))
Сергей (hsl)
РФ, г. Ульяновск
Профиль hsl
О себе автор ничего не сообщил.
 

Понравилось? Палец вверх!

  • всего лайков: 13

Поделись с друзьями!

Связанные материалы:


Блок управления вытяжным вентилятором. Наладка, результаты

Всем здоровья! Утюг починен. Хочу коротко отчитаться в проделанной работе и результатах наладки...

Блок управления вытяжным вентилятором туалета или ванной, с задержкой отключения и

При посещении туалетной или ванной комнаты зачастую одновременно с включением освещения включают...

Датагорский проект 10 "Water Tank Controller". Модификация блока управления для

Привет, друзья! Последний раз я имел дело с микроконтроллерами лет 20 назад, во время ПК типа...

Термостат для отопления дачи инфракрасными обогревателями Иколайн. Дежурный режим,

Как говорит мой коллега, что бы Гаврилов ни делал — все равно термометр получается… Новая статья...

Термометр + термостат на микроконтроллере PIC16F876 и датчиках DS18B20

История этого термометра началась в далёком 2011 году. Мне понадобилось в подвале частного дома, в...

Умный дом. Концепция

Что мы имеем в виду, называя дом «умным»? На самом деле, у каждого свое представление об этой...

SHT10 + Atmega8: Микроконтроллерный модуль управления вентилятором санузла, v2

Доброго дня, сограждане! Представляю вторую версию блока управления вентилятором для ванной,...

Простой цифровой термометр на ATmega8535 + DS18B20

Доброго времени суток! Представляю простой, цифровой термометр на индикаторе ИЖЦ21-4/7,...

Цифровой измеритель остатка топлива и напряжения АКБ для автомобиля (ATMega8 и

Не знаю кому как, а мне лично не нравится точность, вернее ее полное отсутствие у автомобильного...

Минисумо робот

И опять роботы... На этот раз Я расскажу, как сделать простой робот для соревнований по мини сумо....

Робот „GOOFY” на ATMEGA 8.

Постепенно изучая работу МК и язык Си появилась на свет данная конструкция – робот который следит...

Аккумуляторы Джи Пи. Купил? Охлади!

Здравствуйте, дорогие единомышленники!:) Помните навязчивую рекламку? Джи Пи - увидел - купи! ...
<
  • Гражданин
25 июня 2010 12:14

Александр / dynazzz

  • С нами с 4.06.2009
  • Ушёл в реал Пользователь offline
  • 64 комментария
  • 0 публикаций
 
  • 0
Культура изготовления налицо. smile Конструкция ни добавить, не убавить.

<
  • Гражданин
25 июня 2010 15:16

Евгений / Nightmare

  • С нами с 22.01.2010
  • Ушёл в реал Пользователь offline
  • 13 комментариев
  • 0 публикаций
 
  • 0
...проект в каком протеусе был сделан?...протеус 7.2сп6 --не открылся...протеус7.6сп0 тоже не открыл...

<
  • Прохожий
25 июня 2010 16:30

/ FH-92-U

  • С нами с --
  • 0 комментариев
  • 0 публикаций
 
  • 0
Сделано все в высшей степени профессионально. Конструкция - хоть сейчас в серийное производство. Здорово!

<
  • Гражданин
25 июня 2010 21:13

Сергей / hsl

  • С нами с 18.12.2009
  • Ушёл в реал Пользователь offline
  • 54 комментария
  • 7 публикаций
 
  • 0
Proteus 7.6 SP0 (8304), может из за того что он у меня русифицирован, но по идее не должно. А проект совсем не открывается или открывается но не работает?
Посмотрел сейчас повнимательнее, там в меню, о программе после версии еще дописано "с рашир. моделир." вот тут я хз, у всех так или это какая то расширеная версия.

<
  • Прохожий
25 июня 2010 22:54

/ Evgen73

  • С нами с --
  • 0 комментариев
  • 0 публикаций
 
  • 0
Интересный проект. Теперь я весь в раздумьях? Делать или не делать?

<
  • Гражданин
26 июня 2010 00:14

Игорь / AudioKiller

  • С нами с 10.01.2012
  • Ушёл в реал Пользователь offline
  • 293 комментария
  • 3 публикации
 
  • 0
Нифига сбе! winked Целый микропроцессор! А я в молодости на трех реле и одном конденсаторе делал, но без датчика, только на автоматическое включение-выключение.

<
  • Гражданин
26 июня 2010 00:23

Евгений / Nightmare

  • С нами с 22.01.2010
  • Ушёл в реал Пользователь offline
  • 13 комментариев
  • 0 публикаций
 
  • 0
у меня прот7.6сп0...сборка 8304..при открытии проекта у прота баг... он не любит чтоб в пути открытия проекта были русские букавки(а тута ак раз папочка была кирилицей написана вот и матюкался и не открывал)...переименовал папку на буржуйские ...все открылось нормально

<
  • Гражданин
26 июня 2010 00:50

Сергей / metrolog

  • С нами с 5.01.2010
  • Ушёл в реал Пользователь offline
  • 90 комментариев
  • 5 публикаций
 
  • 0
Серьезный подход к простым вещам. Узнал много нового. Большое спасибо за интересную статью!

<
  • Гражданин
26 июня 2010 13:48

Иван / Ivan_BY

  • С нами с 14.03.2010
  • Ушёл в реал Пользователь offline
  • 17 комментариев
  • 0 публикаций
 
  • 0
Хорошая идея и отличное воплощение! smile

<
  • Гражданин
26 июня 2010 14:33

Евгений / Nightmare

  • С нами с 22.01.2010
  • Ушёл в реал Пользователь offline
  • 13 комментариев
  • 0 публикаций
 
  • 0
хотел добавить..что сделано в высшей степени профессионально...

<
  • Прохожий
27 июня 2010 02:28

/ Andrew_7

  • С нами с --
  • 0 комментариев
  • 0 публикаций
 
  • 0
Действительно, очень здорово получилось! :)

<
  • Гражданин
27 июня 2010 06:41

Дмитрий / d33z1

  • С нами с 4.07.2012
  • Ушёл в реал Пользователь offline
  • 12 комментариев
  • 0 публикаций
 
  • 0
Очень неплохо!!!И статья познавательная.

<
  • Прохожий
27 июня 2010 10:47

/ zhu4ara

  • С нами с --
  • 0 комментариев
  • 0 публикаций
 
  • 0
Мда... вещь прикольная. Осталось в ванне пробить вентиляционное отверстие...

<
  • Гражданин
27 июня 2010 15:32

Андрей / Loki13

  • С нами с 22.01.2010
  • Ушёл в реал Пользователь offline
  • 10 комментариев
  • 0 публикаций
 
  • 0
Очень качественная статья! Как раз о подобном девайсе подумывал, только не для ванны, а для гаража :)

<
  • Гражданин
29 июня 2010 06:13

Андрей / s_myth

  • С нами с 6.08.2011
  • Ушёл в реал Пользователь offline
  • 17 комментариев
  • 0 публикаций
 
  • 0
Устройство получилось в высшей степени универсальное! С некоторой незначительной переработкой планирую использовать в террариуме. Правда, там нужно ещё и температурой управлять... Э-эх, придётся всё же взяться за изучение микроконтроллеров! smile

<
  • Гражданин
29 июня 2010 17:04

Сергей / hsl

  • С нами с 18.12.2009
  • Ушёл в реал Пользователь offline
  • 54 комментария
  • 7 публикаций
 
  • 0
Да мне Игорь тоже предлагал туда еще температурный датчик вставить, правда для другой цели, контролировать температуру двигателя. Но как то не срослось у меня с этим. Ставить аналоговый датчик температуры, его калибровать надо, а если цифровой, благо они сейчас дешевые, тоже как то не серьезно, один будет цифровой другой аналоговый. Если уж делать то на SHT10 он цифровой и меряет температуру и влажность, один минус дорогой он. Вот если будет возможность раскошелится и приобрести его, тогда сделаю и контроль температуры, а вообще есть идея еще и датчик давления подключить. Но это уже будет другая история smile

<
  • Гражданин
29 июня 2010 21:06

Сергей / saimon45

  • С нами с 23.12.2009
  • Ушёл в реал Пользователь offline
  • 2 комментария
  • 0 публикаций
 
  • +1
Прекрасная работа! Добавление датчика температуры превратит устройство в готовый блок автоматического включения кухонной вытяжки

<
  • Гражданин
1 июля 2010 13:23

Евгений / Nightmare

  • С нами с 22.01.2010
  • Ушёл в реал Пользователь offline
  • 13 комментариев
  • 0 публикаций
 
  • 0
......мне кажется проблематично будет поставить цифровой датчик SHT в машину...куча помех..наводки иза работающего двигателя. ..шина и2с...может передать инфу на небольшое растояние...

<
  • Гражданин
1 июля 2010 15:51

Сергей / hsl

  • С нами с 18.12.2009
  • Ушёл в реал Пользователь offline
  • 54 комментария
  • 7 публикаций
 
  • 0
А в машину зачем датчик влажности? Ну а вообще если есть такая необходимость, проблем быть не должно, с SHT10 дела не имел по описанной уже причине, но вот с цифровыми датчиками температуры DS18B20 сталкивался, и довольно тесно, и именно для машины. У меня в машине в бортовом компьютере (БК) 2 таких датчика стоит, один в салоне сверху, возле зеркала заднего вида, а второй снаружи, за задним бампером, а сам БК стоит спереди в пепельнице, на форуме я вроде фотки даже выкладывал. Так вот до заднего бампера довольно далеко, провода идут параллельно основной проводке, машина не новая, проводка соответственно тоже, наводки и все такое тоже в комплекте, и тем не менее проблем не наблюдается. Но это тоже уже другая история smile

<
  • Гражданин
1 июля 2010 18:19

Евгений / Nightmare

  • С нами с 22.01.2010
  • Ушёл в реал Пользователь offline
  • 13 комментариев
  • 0 публикаций
 
  • +1
ну если уж точнее говарить то эти датчики температуры(DS18B20 и им подобные) используют шину 1-WIRE разработанную фирмой DALLAS SEMIKONDUCTOR.... это шина была специально разработана для удаленного использования в составе сети MikroLAN датчиков и множества различных микросхем расположенных на значительном удалении друг от друга используя всего идин сигнальный провод(не считая общего провода)..максимальная протяженность шины может составлять до 300 метров..где может использоваться обычныы провод или витая пара
...шина I2C-каторую использует SHT10(в переводе как "межмикросхемная шина" ) проектировалась фирмой PHILIPS для внутриплатного использования, для обмена данных между всевозможными микросхемами типа память, процессор и всевозможные специализированые мс...где длинна её строго учитывалась...с учетом количества подключаемых устройств , электирческой ёмкостью всех её элементов(400 пФ)...
ну хотя может быть я ошибаюсь насчёт i2C...

<
  • Гражданин
1 июля 2010 18:48

Сергей / hsl

  • С нами с 18.12.2009
  • Ушёл в реал Пользователь offline
  • 54 комментария
  • 7 публикаций
 
  • 0
Не не, правильно, это я перепутал, действительно у DS18B20 - 1WIRE, а у SHT10 - I2C, а с I2C я только пробую работать, при шлейфе 20-30 см, все нормально, больше не пробовал.

<
  • Гражданин
1 июля 2010 20:55

Евгений / Nightmare

  • С нами с 22.01.2010
  • Ушёл в реал Пользователь offline
  • 13 комментариев
  • 0 публикаций
 
  • 0
в инете нашел.. что на I2C...максимальное расстояние возможное до 10 метров!!!...
....не знаю как про машину... но и для платы это достачоно много...ясно что скорость обмена самая низкая будет...к помехозащищенности тоже весьма серьёзно нужно подойти ...но на практике так далеко не видел ещё нигде...насчет работы так же... smile

Информация
Вы не можете участвовать в комментировании. Вероятные причины:
— Администратор остановил комментирование этой статьи.
— Вы не авторизовались на сайте. Войдите с паролем.
— Вы не зарегистрированы у нас. Зарегистрируйтесь.
— Вы зарегистрированы, но имеете низкий уровень доступа. Получите полный доступ.