DS18B20 - Микроконтроллеры и Технологии

USB-термометр на ATtiny2313

USB-термометр на ATtiny2313Термометр является HID-устройством (Human Interface Device). Термометр собран на популярном и относительно недорогом микроконтроллере ATtiny2313 (AT90S2313), непосредственно измерением температуры занимается интегральный термометр DS18B20 (или DS18S20).

Блок управления водонагревателем(бойлером) на Atmega48

Ниже описана конструкция устройства управления бытовым накопительным водонагревателем (бойлером) объёмом 300 литров, подогреваемым 3-мя трубчатыми электронагревателями (ТЭН-ами) мощностью каждый по 3 кВт. В принципе, в комплекте с ним идёт штатное устройство управления, но включение/выключение контактора издаёт столь громкий резкий лязг, что спящая рядом кошка подпрыгивает как укушенная. А занудное гудение обмотки контактора во включённом состоянии выматывает нервы. Заодно захотелось добавить функции настройки температуры подогрева, а также её индикацию. Кроме того нужно было реализовать защиту от короткого замыкания ТЭН-ов, их обрыва, и звуковую индикацию аварийных режимов.

Конструктивно устройство выполнено на трёх печатных платах: 

- плата управления и индикации;
- плата контроля тока и коммутации;
- плата блока питания.

Двухканальный термометр-термостат на Atmega8

Двухканальный термометр - термостат выполнен на микроконтроллере ATmega8 и цифровых датчиках температуры DS18B20. Два датчика DS18B20 подключают к разъемам Х1 и Х2, причем номера гнезд соответствуют номерам их выводов. Использована трехпроводная схема подключения. Уже много раз я убеждался в том, что только так можно добиться максимальной длины соединительных проводов, и везде, где это возможно, стараюсь избегать паразитного питания датчиков. При медных проводах сечением 0,5 мм2 устойчивую связь удавалось обеспечить на расстоянии до 40 м.

Изучаем DS1820/DS18B20

Датчики температуры с однопроводным интерфейсом 1-WIRE были разработаны фирмой DALLAS SEMICONDUKTOR для использования совместно с микроконтроллерами. Впоследствие эти датчики стали выпускаться фирмой MAXIM. Каждый датчик температуры имеет 56-разрядный индивидуальный идентификационный код, поэтому по одному проводу может быть опрошено практически неограниченное число датчиков. Перед установкой таких датчиков в одну линию необходимо считать 64 разрядный код ROM (в него входит 56-битный номер датчика и 8 бит регистра контроля четности) для каждого датчика и учитывать его при программировании микроконтроллера. Передача 64 разрядов занимает много времени, поэтому в устройствах, использующих небольшое число датчиков, можно обойтись выделением отдельного выхода микроконтроллера для каждого датчика.

Термодатчики DS1820 (DS18S20, DS1821, DS18B20)имеют следующие технические характеристики:
- индивидуальный 64-битный идентификационный номер;
- напряжение питания от +3 до +5,5 В;
- измеряемая температура от -55 до + 125°С;
- погрешность измерения температуры в диапазоне -10...+85°С не более 0,5°С;
- в остальном диапазоне температур погрешность измерения не превышает 2°С;
- информация о температуре выдается 9-битным кодом;
- установка пороговых значений температуры по максимуму и минимуму,
- максимальное время преобразования температуры в код 750 мс;
- возможность питания от высокого уровня шины данных;
- термодатчики не требуют индивидуальной настройки при замене.

Изучаем DS1820/DS18B20. Делаем простой термометр

В этой статье займемся изучением практического применения цифровых датчиков температуры DS18B20. Сделаем простой термометр на семисегментных индикаторах, который будет показывать положительную и отрицательную температуру с разрешением 0,1 градус Цельсия. Для этой цели используем микроконтроллер Atmega8, который работает от внутреннего генератора частотой 8 МГц, семисегментный индикатор с общим анодом(четырехразрядный) и датчик температуры DS18B20. Схема устройства показана на рисунке 1. Шину данных датчика подключаем к порту PC0, а также подключаем к плюсу питания через резистор R1 номиналом 4,7 кОм, поскольку выходной транзистор датчика имеет открытый сток. При питании датчика от шины данных(паразитное питание) вывод 3 датчика остается свободным.

Как уже известно последовательность действий при работе с одним датчиком будет такая:

1) послать сигнал обнуления линии (480...960 мкc);
2) принять импульс присутствия или заполнить время паузой (60...240 мкc);
3) послать команду пропуска идентификации 0xCC;
4) послать команду начала преобразования 0x44;
5) пауза не менее 500 мкc для завершения процесса преобразования;
6) обнулить линию;
7) послать команду пропуска идентификации 0xCC;
8) послать команду считывания блокнота 0xBE;
9) принять 9 байт;
10) выделить и проанализировать бит десятых долей градуса с установленной точностью, в нашем примере это 0,0625;
11) проанализировать бит знака;
12) если знак отрицательный, то перевести значение температуры в дополнительный код;
13) делаем преобразование целой и дробной части значения температуры и выводим на дисплей.

Многофункциональные часы-термостат с дистанционным управлением

Многофункциональные часы-термостат с дистанционным управлениемВозникла у меня потребность в настольных часах-термометре, чтобы помимо времени можно было узнать температуру на улице и в доме. В интернете есть множество конструкций такого рода и даже очень продвинутых, но я так и не сделал свой выбор в пользу какой то из них.

Регистратор температуры на Atmega168

Данное устройство на основе микроконтроллера AVRMega168 может контролировать до 16 DS18x20 термометров, с переменной скоростью опроса от 5 до 9999 секунд. Данные отображаются на многострочном дисплее для немедленного просмотра, а также направляются через RS232 на скорости 19200 бод для записи. Данные записываются с метками времени полученными от часов реального времени, также подключенных к шине 1-Wire.

Термометр на AT90S2313

Простой в изготовлении термометр отображает температуру с трех разных датчиков DS18B20, которые способны измерять температуру от -55 до 125 градусов Цельсия. Индикация температуры происходит циклически через 2 секунды. Семисегментный индикатор применен с общим катодом или анодом, для этого необходимо залить соответствующую прошивку в микроконтроллер.

Уличные светодиодные часы-термометр на Attiny2313

Уличные светодиодные часы-термометр на Attiny2313Уличные светодиодные часы-термометр предназначены не только для информирования населения о текущем времени и температуре окружающей среды, но и для создания привлекательности здания на котором они установлены. Достоинство проекта - небольшая стоимость готового изделия и экономичность. Устройство потребляет электроэнергии не более 40 Вт/ч. Часы состоят из внешнего табло, устанавливаемого на фасаде здания, устройства управления и датчика температуры. Информация о времени и температуре выводится на четырехразрядный семисегментный индикатор попеременно. Абсолютная погрешность измерения температуры определяется погрешностью цифрового датчика температуры и составляет не больше плюс-минус 0.5°С в диапазоне от -10°С до 85°С. В остальном диапазоне погрешность не хуже плюс-минус 2°C. При этом обязательным условием является установка датчика температуры таким образом, чтобы он всегда находился в тени и на расстоянии не менее 15 см от стены. Табло нельзя устанавливать так, чтобы на него падали прямые солнечные лучи. Иначе в яркий солнечный день на табло будут видны только солнечные блики.

Часы с термометром на PIC16F628A

Часы построены на микроконтроллере PIC16F628A, в качестве датчика используется DS18B20, транзисторы BC212 управляют общими анодами семисегментного индикатора, также в состав схемы входят несколько пассивных элементов.

Устройство настраивается с помощью 4-х кнопок. Одна увеличивает, другая уменьшает значение, третья кнопка используется для входа в меню, а также переключает элементы меню. При выходе из меню настройки сохраняются в EEPROM контроллера. Если часы зависают по какой-то причине кнопкой сброса они могут быть перезапущены. Часы будут продолжать работать с последними сохраненными значениями. Микроконтроллер тактируется от внешнего кварца частотой 4МГц для более точного отсчета времени. PIC16F628 управляет дисплеем в режиме мультиплексирования. Индикаторы находятся под контролем одного типа транзистора - BC212.