Термодатчик на Atmega8A. Вариант 1

Добрый день, уважаемые радиолюбители. В радиолюбительской практике бывают случаи, когда необходимо измерять и (или) контролировать температуру в широком диапазоне, но при этом прецизионная точность измерений не требуется. Примером таких измерений может служить контроль температуры отмывочной жидкости и воздуха при автоматической отмывке и сушке печатных плат, контроль температуры при сушке и полимеризации некоторых лаков, красок, компаундов и т.д. Сегодня я хотел бы предложить Вам пример реализации подобного устройства.

Итак, на схеме ниже представлена схема электрическая принципиальная спроектированного термодатчика. Разберёмся кратко как он работает.

Схема электрическая принципиальная термодатчика

В основе данного устройства лежит термодатчик DA2, способный измерять температуру в диапазоне от -40 до +125 градусов Цельсия с точностью ±3 градуса [1].

Аналоговый сигнал, снимаемый с термодатчика поступает на вход нулевого канала аналогово-цифрового преобразователя (АЦП) микроконтроллера DA3 [2], где происходит оцифровка и последующая обработка сигнала. В качестве алгоритма обработки было использовано усреднение по методике скользящего среднего т.к. данная методика усреднения позволяет достаточно эффективно избавиться от случайных одиночных помех [3]. Усреднение производится по результатам 10-ти измерений.

Результат измерения и обработки выводится на ЖК-дисплей типа WH-1602A, подключённый к порту D микроконтроллера DA3 через защитные резисторы R13-R19. По умолчанию на дисплее в первой строке выводится надпись “Temprtature now” (температура сейчас), а во вторую строку выводится непосредственно температура в формате t=”текущая температура“.

В случае превышения заданного порога температуры активируется звуковая сигнализация, реализованная программно в совокупности с внешним исполнительным устройством. Внешним исполнительным устройством служит КМОП-инвертор ( транзисторы VT3, VT4 ), выполняющий роль усилителя тока, совместно с пьезоэлектрическим излучателем Z2. При этом на дисплее во второй строке выводится надпись в формате “WARNING t=”Текущая температура””.

Установка порога срабатывания сигнализации термодатчика производится выключателями S1, S2. При размыкании выключателя S1 происходит ступенчатое циклическое уменьшение порога срабатывания, а при размыкании выключателя S2 – ступенчатое циклическое увеличение порога срабатывания. При этом во второй строке выводится надпись в формате “Porog=”Текущий порог срабатывания””. При одновременном же размыкании выключателей S1 и S2 во вторую строку дисплея выводится значение текущего порога срабатывания сигнализации термодатчика.

По окончанию ввода данные о пороге срабатывания сохраняются в энергонезависимую EEPROM, где и хранятся при отключении питания устройства. Запись в EEPROM производится только при различии установленного и сохранённого в памяти порога для продления срока службы EEPROM (EEPROM имеет относительно небольшой ограниченный ресурс циклов перезаписи).

Дополнительной функцией термодатчика является автоматическая регулировка яркости подсветки посредством аппаратного ШИМ. В качестве датчика освещённости используется фоторезистор R8.

Сигнал, снимаемый с делителя R7, R8 подаётся на четвёртый канал АЦП где оцифровывается и обрабатывается по такой же методике, что и сигнал с термодатчика. Управление подсветкой дисплея осуществляется через КМОП-инвертор ( транзисторы VT1, VT2 ), выполняющий роль усилителя тока.

Опорный источник напряжения для измерения температуры реализован на регулируемом прецизионном стабилитроне DA1 [4, 5]. От стабильности поддержания напряжения на выходе данного источника напрямую зависит точность измерения температуры во времени.

Микроконтроллер DA3 тактируется от внешнего кварцевого резонатора Z1, подключенного к соответствующим выводам XTAL1, XTAL2.

Питание термодатчика осуществляется через дополнительный стабилизатор напряжения, выполненный на микросхеме DA4 [6]. Данный стабилизатор необходимо установить на дополнительный теплоотвод.

Питание микроконтроллера DA3 осуществляется через дополнительные LC-фильтры, выполненные на дросселях L1, L2 и конденсаторах С9-С13. Кроме того данные фильтры дополнительно развязывают по питанию цифровую и аналоговую части микроконтроллера, исключая их влияние друг на друга. Данные фильтры необходимо установить как можно ближе к выводам 7, 8, 20, 22 (VCC, AVCC, GND) микроконтроллера.

Конденсаторы С15-С18 – дополнительный фильтр питания термодатчика.

Конденсаторы С1, С2 – дополнительный фильтр напряжения питания для обеспечения логической единицы на выводах 25, 26 (PC2, PC3) микроконтроллера при разомкнутых выключателях S1, S2.

Конденсатор С4 – дополнительный фильтр напряжения питания термодатчика DA2. Данный конденсатор необходимо установить в непосредственной близости от выводов питания термодатчика.

Конденсаторы С5, С6 – дополнительные фильтры выходного напряжения датчиков.

Выключатели S3, S4 служат для отключения подсветки ЖК дисплея, а так же звуковой сигнализации.

Все использованные детали указаны на схеме.

Программирование микроконтроллера производится по интерфейсу SPI, для чего в термодатчике выведены соответствующие выводы микроконтроллера через защитные резисторы R9-R12.

Настройка и налаживание устройства не представляет сложности. После сборки термодатчика необходимо подать на устройство питание в диапазоне от 7 до 35 Вольт и проконтролировать напряжение на выходе стабилизатора DA4, которое должно лежать в диапазоне от 4.9 до 5.1 Вольт. При необходимости напряжение на выходе корректируется подбором резистора R29.

Далее необходимо проконтролировать напряжение на выходе стабилитрона DA1, которое должно быть равно 3 Вольтам. При необходимости выходное напряжение корректируется резисторами R4, R5.

После проверки соответствия выходных напряжений заданным необходимо переменным резистором R27 выставить комфортную контрастность дисплея, которую в дальнейшем всегда можно подкорректировать.

В различных исполнениях дисплея могут быть тонкости с подключением данного регулятора контрастности, но как минимум существует 2 варианта — первый из них показан на исходной схеме, а второй заключается в том, что напряжение на вывод контрастности VO подаётся с подвижного контакта переменного резистора, включенного между питанием +5 Вольт и общим проводом. Какой из методов используется в Вашем дисплее необходимо уточнять в документации к конкретному варианту исполнения дисплея.

После установки необходимой контрастности необходимо подключить программатор к микроконтроллеру и произвести его «прошивку» по SPI-интерфейсу. После окончания программирования микроконтроллер будет перезагружен автоматически. При программировании необходимо выставить фьюзы в соответствии с фото ниже. Будьте внимательны, фьюзы приведены в ИНВЕРСНОМ варианте.

Конфигурация фьюзов при программирование микроконтроллера

После окончания перезагрузки остаётся только выставить переключателями S1, S2 необходимый порог срабатывания звуковой сигнализации термодатчика, после чего настройку и налаживание можно считать законченными.

По окончанию настройки устройства производится его калибровка по образцовому термометру. Если показания термодатчика после 10-15 минут работы отличаются от показаний образцового термометра более чем на ±3 градуса Цельсия необходимо произвести корректировку коэффициента 0.0116470588 в выражении temp=((0.0116470588*res_sr)-0.5)/0.01 в исходном коде программы, после чего перекомпилировать программу и перепрошить контроллер снова, произведя повторную калибровку. После завершения калибровки устройство готово к использованию.

В подборке фото ниже показан внешний вид макета термодатчика при проведении испытаний.

На видео ниже показана работа термодатчика при проведении практических испытаний.

На этом на сегодня всё, с уважением, Андрей Савченко.

P.S. Исходный код прошивки на языке Си находится в прикреплённом файле 1.zip. Написание программы осуществлялось в среде Code Vision AVR с использованием встроенных библиотек. Скомпилированная прошивка также находится в прикреплённом архиве.

P.P.S. Не пинайте сильно за код, т.к. до этого программировал последний раз курсе эдак на втором, лет 6 тому назад… Пока делал макет данного варианта термодатчика созрели некоторые модификации в плане как железной составляющей так и программной части, поэтому со временем появится скорее всего второй вариант данного термодатчика. Буду рад обоснованным замечаниям по существу.

Список использованной литературы

1. Параметры термодатчика TMP36GT9Z

2. Параметры микроконтроллера Atmega8A

3. Скользящая средняя

4. Описание TL431

5. Описание и применение TL431

6. Параметры LM317