poniedziałek, 22 grudnia 2014

Prosty termometr 7seg LED + DS18B20

Przedstawiam prostą konstrukcję termometru z wyświetlaczem 7 segmentowym LED wykorzystującego czujnik termperatury 1wire DS18B20. To niezwykle proste urządzonko służy jako termometr zaokienny. Duże cyfry wyświetlacza umożliwiają odczyt pomiaru z bardzo dużej odległości niezależnie od warunków oświetleniowych.


Schemat urządzenia przedstawia się następująco:


Wykorzystane wyświetlacze ze wspólną anodą TOS8102 o rozmiarze segmentu 27,7x20 mm pochodzą z demontażu. Mikrokontroler ATmega8A w obudowie DIP taktowany jest wewnętrznym generatorem RC o częstotliwości równej 8 MHz. Kondensator filtrujący zasilanie znajduje się wewnątrz podstawki pod uC.

Do realizacji projektu celowo wybrałem płytkę uniwersalną :) Chciałem przetestować jak pójdzie prototypowanie urządzenia w takiej postaci. Do tej pory zawsze robiłem dedykowane płytki PCB.



Całość zasilana jest ze starej ładowarki do telefonu (Sony Ericcson) posiadającej stabilizowane 5V na wyjściu. Czujnik zasilany pasożytniczo (czyli prawdziwy 1wire ;) ). Dołożyłem też tranzystor pnp jako silny pull-up aktywowany stanem niskim na wyprowadzeniu PC2 mikrokontrolera (choć bez tranzystora też wszystko działa poprawnie). Rezystor 47 Ohm jest zabezpieczeniem przed uszkodzeniem tranzystora w przypadku zwarcia zewnętrznej linii 1wire z GND (przetarcie kabla w ramie okiennej lub przypadkowe zwarcie podczas podłączania czujnika).
Czujnik temperatury zamontowany na parze przewodów z miedzianej skrętki komputerowej. Został uszczelniony koszulką termokurczliwą i klejem na gorąco.



Aktualnie układ jest zamontowany na karniszu przy oknie. W przyszłości planowane jest wykonanie wersji z uC w obudowie TQFP umieszonym bezpośrednio za segmentami wyświetlacza.

Oprogramowanie napisane w Atmel Studio 6.2 (język C) do pobrania tutaj. Temperatura jest mierzona i aktualizowana co 750 ms. Jeśli czujnik zostanie odłączony to na wyświetlaczu pojawią się 3 poziome kreski (minusy). Termometr zaokrągla temperatury do pełnego stopnia (w górę lub w dół zależnie od wartości - zgodnie z podstawowymi regułami matematycznimi dot. zaokrąglania wyniku). Zakres pomiarowy w tej wersji oprogramowania wynosi od -55 do +99 stopni Celsjusza (czujnik pozwala na pomiary do +125 stopni, jednak należy pamiętać, iż zasilanie pasożytnicze w wysokich temperaturach jest niewystarczające do poprawnej pracy czujnika).

Zajętość pamięci uC ATmega8A:
Program Memory Usage : 2008 bytes   24,5 % Full
Data Memory Usage : 107 bytes   10,4 % Full