К термометру можно подключить от одного до шести датчиков температуры DS1820 (ВК1—ВК6). Их одноименные выводы соединяют параллельно проводами длиной до нескольких метров, причем датчики должны быть подключены к прибору до подачи на него питания. При включении питания микроконтроллер по специальному алгоритму определяет, сколько их и в дальнейшем распознает их по уникальным серийным номерам, хранящимся в ПЗУ каждого датчика.

Схема термометра изображена на рис. 1. Он собран на микроконтроллере ATtiny2313-20PU (DD1). работающем от внутреннего тактового RC-генератора. Конфигурация фьюз-битов микроконтроллера должна соответствовать показанной на рис. 2. Термометр рассчитан на питание от 7 до 18 В через стабилизатор DA1.

Термометр на Attiny2313 и DS1820 - схема

Рисунок 1

Рисунок 2

После включения питания микроконтроллер выполняет проверку светодиодного индикатора HG1 (с общим катодом, от телефонного аппарата с АОН), зажигая все элементы всех трех его разрядов. Затем выводится надпись из буквы d, дефиса и цифры, означающей число обнаруженных датчиков.

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

В случае, когда к термометру подключен лишь один датчик, выводятся только его показания без номера. Если датчики не подключены или все они неисправны, на индикаторе будут включены три дефиса.

Автор: Е. АГЕЕНКОВ, г. Смоленск


Архив для статьи "Термометр на Attiny2313 и DS1820"
Описание: Исходный код(Си), файл прошивки микроконтроллера
Размер файла: 5.04 KB Количество загрузок: 3 028 Скачать

Комментарии  

+1 #1 Ion 19.01.2013 15:06
Код:Добрый день!
Повторил схему,всё работает,но некорректно отображает последний символ. И нет разделительной точки.
В чём может быть дело?
Сообщить модератору
0 #2 cation 06.02.2013 03:16
вроде бы в архиве прошивка для индикаторов с общим анодом, разве нет? (я исходник смотрю)
Сообщить модератору
0 #3 AntonChip 06.02.2013 06:52
Цитирую Ion:
Код:Добрый день!
Повторил схему,всё работает,но некорректно отображает последний символ. И нет разделительной точки.
В чём может быть дело?

Иногда встречаются индикаторы у которых не подключена точка
Сообщить модератору
0 #4 AntonChip 06.02.2013 06:53
Цитирую cation:
вроде бы в архиве прошивка для индикаторов с общим анодом, разве нет? (я исходник смотрю)

Проверял на индикаторах с общим катодом, все работает
Сообщить модератору
0 #5 wildcat140 09.07.2013 14:33
Добрый день! Повторил схему, не подсвечивается правый индикатор. Посмотрел осциллографом на 7 ноге низкий уровень, сигнал на 6 ноге. Перепаял проводник c 7 на 6 загорелись все индикаторы. При включении без датчика тестируется индикатор и пробелы, все как учили. С датчиком тестирование проходит , потом ненормальные показания - меняется индикация где то раз в секунду, то зеркальные девятки то верхняя половина засвечивается и другие варианты. . Датчик DS1820. При нагреве датчика изменения есть. В чем может быть проблема?
Сообщить модератору
0 #6 AntonChip 09.07.2013 18:15
Согласно исходнику катоды должны быть подключены к PD0, PD1, PD2 это не соответствует схеме, не знаю может автор выложил другой hex файл, заметил что в схеме нет фильтрующих конденсаторов на 100n, может это поможет.

Повторюсь, что девайс проверял, было все нормально
Сообщить модератору
0 #7 wildcat140 10.07.2013 04:20
Спасибо за быстрый ответ. Фильтрующие я поставил сразу. Я нашел этот термометр в 2 разных источниках и сравнил прошивки, они идентичны. Так что в схеме ошибка с нумерацией ног. А у меня видимо что то мудрит датчик и нет под рукой другого, придется отложить на неделю. Или собрать другую схему в которой проверить этот.
Сообщить модератору
0 #8 wildcat140 12.07.2013 11:39
Ну вот собрал термометр по другой схеме, правда датчик там один, что мне не нравится, но DS1820 исправна. Отпаял индикаторы, они у меня на отдельной плате, проверил все верно там с монтажем. Проверил файл прошивки в процессоре и фьюзы, все в порядке. Печаль, хочется 2 канальный термометр Идей дефицит.
Сообщить модератору
+1 #9 Hoksmur02 23.10.2013 07:57
Допилил прошивку сего девайса. Было: при использовании DS18B20 температура завышалась в 10 раз. Теперь сам понимает, что к нему подключено - если температура выше порога, то прописывает в еепром, что работает с DS18B20. Сбрасывает на стартовые при запуске без датчиков.
Брать тут tau-craft.com/.../prj-379.zip
Сообщить модератору
0 #10 ssserghei 26.04.2014 21:19
заработало с прошивкой от #9 Hoksmur02 с датчиком DS18B2 после "катоды должны быть подключены к PD0, PD1, PD2". Спасибо всем большое !!!
Сообщить модератору
0 #11 Николай111 27.12.2017 05:55
собрал, но подключал как написано в комментариях к PD0, PD1, PD2. Все работает, видит 5 датчиков и нормально отображает температуру (прошивка была из статьи).
Сообщить модератору