В данной статье рассмотрим создание простого цифрового термометра с использованием в качестве датчика цифровой датчик температуры от фирмы DАLLAS, а точнее с датчиком ds18b20 и микроконтроллером ATtiny2313. Написал программу и собрал девайс в процессе изучения AVR микроконтроллеров. Характеристики цифрового термометра: пределы от -55 до +125*С ; точность измерение от 0,1 до 0,5*С ; максимальное количество датчиков - 8. О принципе работы.
Вот типа на сам датчик:
Мк подает запрос на поиск и запись адресов датчиков ds18b20 подключенных к линии МК по интерфейсу 1Wire. Далее производится чтение температуры с датчиков, которые были найдены, после этого МК выводит температуру на 3-х символьный LED, при небольшой модификации прошивки можно подключать 4-х символьный LED, при этом будет температура выводится с точность до десятичных. Опрос датчика составляет где-то 750мс. Схема проста и в печатной плате не нуждается, хотя кому больше нравится на печатной плате - можно нарисовать. Я МК ставил с заду LED и всё соединял проводами.
Вот схема:
Перейдём к настройки фьюзов МК. Для работы с протоколом 1Wire, частота внутреннего генератора МК должна быть не меньше 4мгц. Вот скриншот фьюзов которые надо выставить при прошивке в Code Vision AVR:
Вот фото готового девайса:
В архив прошивки с общим катодом и общим анодом. Так же все прошивки умеют работать с 8 х датчиками ds18b20.
Есть прошивка, которая меряет температуру с точностью до десятичных значений, при этом необходим 4х символьный LED дисплей, анод лишнего сегмента цепляют к PORTD.3 , а запятую цепляют на PORTB.7.
Файлы:
Файлы проекта для Proteus.
Прошивка МК.
UPD
Печатная плата в формате SL 5.0(прислал Maverick5334)
Вопросы, как обычно, складываем тут.