Термометър с DS18B20 и 3-digit 7-segment LED дисплей
/kn34pc.com/конструкции/...

За контрол на едно помещение в студения зимен период се нуждаех от индикация на стайната температура. Предвид денонощната работа на устройството, добре би било индикацията да е видима и без друго осветление. Термометър със 7-сегментен LED дисплей ми се стори най-подходящ.

Вариантът със закупуване на готов термометър ми е твърде примамлив (най-вече заради "нищо-неправенето": даваш парите и получаваш , вкл. и нищожната цена), но чакането при транспорта често е определящо.

А и за мен (образно казано): при самоделна изработка устройствата (особено ако са в дългогодишна експлоатация) като че ли придобиват "душа" - работата на устройството те радва по един особен начин и по-различно възприемаш информацията, която то предоставя.

Та речено-сторено: реших да си сглобя просто термометърче с Arduino, LED дисплей и температурен датчик, без настройки, без меню, без бутони. Само термометър.

С помощта на мои по-предишни експерименти със събрани от интернет библиотеки към Arduino (за управление на датчик DS18B20 и 7-сегментни LED индикатори) и няколко свободни часа писане, кодът на термометърчето беше готов.



Arduino sketch: arduino_temp.zip

Използвани библиотеки:

 
   - управление на дисплея: със SevSeg Library, Dean Reading, 2017
    - управление на темп. датчик DS18B20: с OneWire Library, Jim Studt, 2007

Следваха няколко дни тестове, сравняване на 3 датчика от различни доставчици, сравняване показания с още 5 различни термометъра. Точността на DS18B20 ме удовлетворява, като 12-битовия изход ми позволи отчитане на градуси до десети (разбира се: с "едно наум" за точността, според справочните данни).

Опресняване на дисплея: през 66 ms / разряд, по таймерно прекъсване. Подготовка и измерване на температурата: през 2500 ms. Изменението на температурата е инертен процес, така че опресняването на показанията оставих през (2,5 + 2,5)s. Така и самонагряването е минимално.

Не съм тествал индикацията в отрицателната област на изменение на температурата, но до -9,9°C би трябвало да е нормално, а по-надолу по температура: заради знак "-" (минус) в заетия първи разряд, показанието ще е в "единици градуси".

Печатна платка не съм правил. Компонентите свързах на експериментална платка с отвори. Платката е монтирана в подходящ корпус, с отвор за дисплея зад прозрачна стена, а DS18B20 е изнесен извън на задната страна на кутийката.

За 5V захранване може да се използва и стабилизатора на Arduino-платката, но предпочитам външен. Достатъчен е захранващ адаптер с висока експлоатационна надеждност, напр. от стар GSM-апарат или компютърен модем. При напрежение 5V консумацията на ток е около 30 mA.


73! До следващия проект .

LZ2WSG, KN34PC
25 януари 2019 година