Трехканальный термометр на ds18b20
Однажды мне пришлось изготовить трехканальный термометр на ds18b20. Не могу не поделиться с нуждающимися.... Правда, справедливости ради, стоит отметить, что прошивка была написана за одну ночь, поэтому не очень читабельна.... Зато устройство работает - это ведь главное :).
Для изготовления нам понадобиться:
микроконтроллер atmega8 - 1 шт.
датчики ds18b20 - 3 шт. (так запланировано, можно й меньше, прошивка будет работать);
трехрозрядные сегментные дисплеи - 3 шт.
разьемы:
bh-16 ("мама", "папа") - 1 шт.
bh-10("мама", "папа") - 1 шт.
конденсатор 10 мкф - 1 шт.
конденсатор 10 нф - 1 шт.
резистор ~470 Ом - 7 шт.
резистор 4.7 Ом - 1 шт.
разъем для подключения питания - 1 шт.
Вроде все. На печатке предусмотрено место для кварца, но он не используется, все тактируется внутреним генератором на частоте 8 Mhz.В архиве найдете разводку в Sprint Layout. Там же скомпилирована прошивка, а также исходники аод Code VisionAVR (вдруг понадобиться =) ).
Для подключения термодатчиков используется разем bh-10 (9 контактов задействовано), для подключения сегментных индикаторов - bh-16. В принципе, можно все напрямую подпаять, но я так сделал для удобства. Схема подключения:
bh-10:
ds18b20 1: 1 - VCC, 2 - GND, 3 - DQ
ds18b20 2: 4 - VCC, 5 - GND, 6 - DQ
ds18b20 3: 7 - VCC, 8 - GND, 9 - DQ
bh - 16:
A - 4, B - 6, C - 8, D - 10, E - 12, F - 16, G - 14
Катоды: знаки (1 розряд) :
1 - 15, 2 - 13, 3 - 11
Цифры:
1_2 (первый индикатор, 2 розряд) - 9 (9 pin bh-16),
1_3 - 7, 2_2 - 5, 2_3 - 3, 3_2 - 1, 3_3 - 2
Вобщем, получился термометр, диапазон измерений(-55, 100) градусов.При включении издает приветствие или сообщение об ошибке (если не подключен ни один датчик), устройство расчитано так, чтобы индикаторы находились рядом и - для возможности вывода сообщений. Предусмотрено вывод сообщения о высокой/низкой температуре. Используется динамическая индикация.
Исходники: Term