РадиоКот :: Простой миниатюрный термоконтроллер на atmega8 с управлением по UART
Например TDA7294

РадиоКот >Схемы >Цифровые устройства >Бытовая техника >

Теги статьи: Добавить тег

Простой миниатюрный термоконтроллер на atmega8 с управлением по UART

Автор: vpvideo, vpvideo@mail.ru
Опубликовано 07.09.2015
Создано при помощи КотоРед.
Участник Конкурса "Поздравь Кота по-человечески 2015!"

Привет котам! Присоединяюсь к поздравлениям! Желаю здоров’я и неиссякаемого вдохновения! Давно тут пасусь. Много для себя интересного взял. Пришло время делиться.

Часто возникает необходимость защитить прибор от перегрева. Много разных вариантов опробовано. Обычно, надо что-то универсальное, простое и компактное. Предлагаю вашему вниманию термоконтроллер. Собран на atmega8. Тактируется от внутреннего генератора на 8 МГц. Можно подключать до четырех датчиков 18B20. Режим работы определяется максимальным значеним измереной температуры.

Контроллер управляет ШИМом одним вентилятором. Имеется световая (светодиод, который выводится на переднюю панель) и звуковая (нужен бузер с внутренним генератором) индикация режимов работы. Так же есть возможность контролировать работу устройства и, главное, настраивать его через UART. Это дало возможность исключить индикаторы и кнопки управления для экономии пространства.

Логика работы следующая. Измеряется температура всех датчиков, выбирается наибольшая и определяется режим работы. Вентилятор начинает вращаться от определенного значения ШИМа (minPWM). Для каждого экземпляра это значение свое. В устройстве есть возможность установить необходимое значение минимального ШИМа. Оно подбирается экспериментально.

При включении прибора, температуру которого контролируем, обычно, он холодный и вентилятор выключен. При достижении хотя бы в одной из контролируемых точек температуры t_min – минимальной температуры при которой начинает вращаться вентилятор на выходе появляется ШИМ уже со значением minPWM минуя меньшие значение для исключения непоняток в работе вентилятора (писки, дерги и т.д.) При дальнейшем росте температуры значение ШИМ увеличивается пропорционально температуре и достигает 100% при температуре t_max. В случае дальнейшего роста температуры и достижения значения t_stop контролер переходит в режим STOP ENGINE и на выходе СТОП появляется логическая единица. Которую можно использовать для выключения прибора до остывания. Прибор снова включится при остывании до значения среднего между t_min и t_max.

Также, есть возможность предварительного включения обдува, не дожидаясь нагрева (если есть возможность откуда-то этот сигнал взять) – preSTART . При включенном предварительном старте, даже при температурах ниже минимальной, на выходе будет присутствовать minPWM. Значение минимального ШИМа можно подбирать таким, чтобы его хватало только для поддержания вращения вентилятора. Надежный старт обеспечивается форсстартом – на 0,1 сек. Подается 50% ШИМ.

При выключенном вентиляторе светодиод не светится. Диапазон температур между t_min и t_max делится на три равные части. При нахождении максимальной измеренной температуры в первой трети светодиод периодически моргает однократно. Во второй – дважды, в третьей – трижды. Четыре раза моргает если температура между t_max и t_stop. И постоянно моргает в режиме СТОП. Также, при превышении температуры значения t_max, включается короткий звуковой сигнал и при входе в режим СТОП – более продолжительный.

Значения t_min, t_max, t_stop и minPWM можно установить самостоятельно, подключившись терминалом. Бодрейт 19200. Для входа в режим настроек необходимо послать символ «S». Также есть возможность выбора отображения данных в терминале: статическое и динамическое. При динамическом более наглядное изменение температуры по времени. При отсутствии изменений температуры вместо новой строчки в ряд появляются точки. При фиксации изменений появляется новая строчка с актуальными данными. При подаче питания на термоконтроллер в UART отсылается шапка с данными об установленных значениях температур и ШИМа и напоминание о способе входа в режим настроек. В режиме настроек нужно ввести девять цифр. Первые две – t_min, следующие две - t_max, еще две - t_stop, следующие две - minPWM и одну – выбор режима отображения. После ввода девятой цифры – значения сохраняются в EEPROM и устройство начинает работать уже с новыми настройками. При следующем включении питания в шапке будут отображаться уже новые действующие настройки.

Еще момент - при отсутствии датчиков – на выходе 100% ШИМ. Также 100% около 1 сек появляется при включении питания.

Деталей не много. Думаю, каждый запросто себе плату сам нарисует. Себе же нашел решение – вывел выводы UARTa в разъем программирования. Планирую контроллер врезать гнездом в заднюю стенку устройств. Всем удачи!


Файлы:
фьзы
Прошивка
Плата


Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

11 27 7
1 0 0