пятница, 8 февраля 2013 г.

термометр на attiny2313 с 4 датчиками

Программная часть

Для индикации минусовой температуры служит отдельный светодиод. Первоначально я хотел поставить прямоугольный советский светодиод (не помню марку, вроде КИПМО какой-то), но мощность излучения оставляла желать лучшего Поэтому я его заменил на SMD светодиод красного свечения:

Далее приведу фото получившейся конструкции:

Два разъема RJ11 служат для подключения внешнего источника питания и выносного датчика температуры DS18x20. Причем оба разъема равнозначны и их нельзя перепутать, т.к. цепи питания и шина 1-Wire разнесены на разные контакты (получилась небольшая защита от «дурака»). Блок питания и выносной датчик (можно и не один) подключаются обычными телефонными 4-х жильными проводами с разъемом RJ11. Датчики DS18x20 необходимо хорошенько изолировать от воздействия окружающей среды при работе на открытом воздухе. В своей конструкции я вывел 2-ой датчик температуры из корпуса прибора наружу на коротком проводнике (измерение температуры в комнате).

Размеры телефонной розетки наложили жесткие ограничения на размер печатной платы. Поэтому всю разводку электрической схемы на дорожках выполнить не удалось пришлось применять некоторое количество коротких отрезков провода МГТФ. Также я отказался от применения внешнего кварцевого резонатора и использовал внутренний RC генератор 1МГц.

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

Выбор компактного корпуса у меня занял некоторое время. Свой выбор я остановил на обычной телефонной евророзетке с двумя разъемами RJ11.

Выбор дешевого индикатора, который бы еще и светился сводится, конечно же, к применению семисегментного. Тут альтернативы нет.

Измерение температуры датчиками DS18B20 и DS18S20 одновременно.Подключения нескольких датчиков на одну шину 1-Wire для многоточечных измерений температуры.Дешевый индикатор, видимый в темноте.Компактный корпус.Удобство подключения проводов от датчиков и источника питания.Внешний источник питания 5В для простоты реализации.Отображение целого значения температуры в `С (т.к. у нас всего 2 разряда на индикаторе). Итак, условие о применении любых датчиков серии DS18x20 возникло из-за того, что у меня в наличии как раз остались один DS18S20 и один DS18B20. Как выяснилось, покопавшись в сети, прошивок термометров, работающих одновременно с этими двумя датчиками нету. (возможно плохо искал, но тем не менее). Почитав даташиты на эти датчики, стало понятно, что представление температуры в них выполнено по разному. Значит будем создавать свой универсальный код микроконтроллера! Об этом подробнее в программной части.

Исходное задание звучит так:

Постановка задачи

Вот что из этого получилось.

Спустя некоторое время, после знакомства с AVR и освоения ЛУТ технологии в связке с SMD компонентами у меня и зародилась идея создать более компактную и более дешевую версию такого цифрового термометра.

Этот термометр до сих пор исправно работает (установлен на кухне) и показывает температуру «за бортом» и на балконе.

Это не первая конструкция электронного термометра, собранного мною. Несколько ранее (когда я был знаком только с PIC контроллерами) я собрал бытовой термометр на PIC16F628, датчиках DS18S20 и 2-х строчном ЖК индикаторе на основе контроллера HD44780. Программу писал, на C с использованием среды PIC C Compiler. Использовал готовые библиотеки кода для общения с датчиками и LCD дисплеем. Электронную схему выполнил на макетке, все детали в DIP корпусах.

Немного предистории

Добрый день! Хочу поделиться с сообществом своей реализацией цифрового бытового термометра на контроллере ATMega8 и датчиках DS18x20.

Цифровой термометр на ATMega8

Логин или эл. почта:

Цифровой термометр на ATMega8 / AVR / Сообщество EasyElectronics.ru

Комментариев нет:

Отправить комментарий