Автор: Nusik1975, nusik1975@gmail.com
Понадобился мне термометр, который одновременно показывает температуру на улице и дома. В Интернете полно схем, которые реализованы с использованием датчика DS18B20, и даже не одного, а нескольких… Но во всех термометрах, схемы которых я нашел, был только один семисегментный индикатор с 2, 3 или 4 разрядами. Вывод температуры на него с двух и более датчиков производится попеременным переключением индикации. Аналогичный термометр прослужил мне некоторое время. Но мне показалось это неудобным. Было принято решение использовать 2 трехразрядных семисегментника, чтобы температура с каждого из двух датчиков выводилась на свой дисплей. Но готовых решений в Интернете я не нашел, поэтому пришлось самому сделать то, что требуется. Конечно, можно изготовить два отдельных термометра и разместить их в одном корпусе… Но это нерационально.
В моем двухканальном термометре используется 2 датчика DS18B20-один для улицы и второй для дома. Датчики эти привлекают достаточной точностью показаний и неприхотливостью. Применен микроконтроллер AtMega8А в корпусе TQFP32 (других под рукой не оказалось), и семисегментные трехразрядные индикаторы с общим анодом CPD05231UR2/A. Они достаточно яркие при небольшом токе потребления. Транзисторы в цепях анодов являются ключевыми, дабы не превышать максимальные токи для портов МК.
Схема питания стандартна – стабилизатор 7805. В качестве источника питания применил зарядное устройство от сотового телефона Siemens. Оно дает на выходе примерно 7,5 вольт, что достаточно для нормальной работы стабилизатора 7805.
Печатная плата у меня получилась двусторонней, разрабатывалась под конкретный корпус. На одной стороне размещен стабилизатор, 2 семисегментника, разъем питания, электролитический конденсатор, разъем для программирования и подтягивающий резистор на 4,7 кОм для нормальной работы датчиков. Все остальные детали размещены на другой стороне платы. Конечно, можно использовать микроконтроллер и в DIP-корпусе, но тогда придется нарисовать свою печатную плату, ориентируясь на названия портов микроконтроллера.
Один датчик (комнатный) установлен сбоку корпуса, а второй-на улице. Для правильности показаний уличный датчик нужно установить так, чтобы на него не падал солнечный свет и не попадали атмосферные осадки. Желательно его ставить с северной стороны дома, где солнышка мало. Я его разместил в воронке, сделанной из пол-литровой пластиковой бутылки, обрезав ее. Предварительно надо загерметизировать контакты датчика. У меня это выглядит так :
Датчик закреплен с внешней стороны балкона.
Программирование МК.
Тактовая частота МК выбрана 8 МГц. Кварц я не использовал-нет необходимости. Частоту внутреннего генератора выставляем фьюзами, как на картинке:
Картинка дана для программы CodeVision AVR.
Для выставления фьюзов в других программах я пользуюсь универсальным правилом. Считываем фьюзы нового МК и смотрим на фьюз RSTDISBL. Если на нем нет галочки (как в CodeVision и как на скриншоте), то все галочки ставим также. А вот если на этом фьюзе есть галочка, то все фьюзы нужно выставить инверсно, то есть наоборот. Фьюз RSTDISBL никогда не трогайте. Если его изменить, то прошивка МК станет невозможна.
Прошить микроконтроллер можно любым программатором AVR. Я постоянно пользуюсь программатором STK200. Мне он нравится своей простотой, развязкой от LPT-порта и скоростью прошивки чипов.
Детали.
Микроконтроллер можно применить с любыми буквами. Если используете МК в DIP-корпусе, будьте внимательны при разводке платы. Семисегментные индикаторы можно применить любые трехразрядные (или 4-х разрядные) с общим анодом. Резисторы R4-R11 являются токоограничительными, ими можно подобрать яркость свечения индикаторов, не забывая о максимальном токе в 20 мА на порт микроконтроллера. Транзисторы BC857B можно заменить аналогичными с проводимостью PNP. Так как отладкой я занимался непосредственно в железе, был установлен разъем для ISP-программирования.
Вот что получилось в итоге.
Термометр на стене.
Сзади корпуса прорезаны небольшие отверстия для крепления на стене. В качестве лицевой панели применил оргстекло, затемнив его пленкой для тонировки автомобильных стекол. Корпус был взят от леденцов Монпансье, сверху он закрывался жестяной крышечкой. На верхнем индикаторе-температура дома, на нижнем-за бортом. Яркость индикаторов большая, фото сделано при сильном освещении, и даже тонировочная пленка не мешает нормально видеть показания термометров.
АРХИВ:Скачать