Termomert cyfrowy
z u¿yciem uk³adu DALLAS DS1820.
Sam uk³ad jest prosty, lecz stanowi pocz±tek wiêkszej ca³o¶ci, tzn.: sterownika ogrzewania z piecem gazowym, bojlerem ciep³ej
wody i pompki cyrkulacyjnej dla domku jednorodzinnego. Celem jest ograniczenie zu¿ycia gazu oraz pr±du, z uwzglêdnieniem
taniej/drogiej taryfy pr±du (dni tygodnia itd.) w oparciu o z³omowe komputery (PC klasy 286/386/486 z
DOS-em).
Uk³ad termometru zbudowa³em w oparciu o p³ytkê AVT-2500 z do³±czonym tylko jednym elementem - DS1820 zgodnie z rys. poni¿ej:
AVT-2500
--------
I
----------------
GND <------------------| 1
| \
1WIRE <------------------| 2 DS1820 | |
I
NC ---| 3
| /
--------
---------------- |
 |
Uk³ad DS1820 jest scalonym termometrem/termostatem, który do pomiaru temperatury u¿ywa dwóch generatorów o ró¿nych
wspó³czynnikach temperaturowych. Z ró¿nicy czêstotliwo¶ci tych generatorów wylicza siê temperaturê, któr± mo¿emy odczytaæ na 9 bitach.
Zakres mierzonych temperatur -55 do +125 st. C z dok³adno¶ci± do 0,5 stopnia.
W materia³ach firmy DALLAS opisany jest sposób zapisu temperatury oraz przyk³adowe sposoby komunikacji urz±dzenia MASTER na magistrali
1WIRE w celu odczytania temperatury (jak i ustawienia termostatu).
Procedura inicjuj±ca pomiar temperatury i odczytuj±ca j± (DS1820.PDF str.
21):
 | wys³anie RESETu na 1WIRE, |
 | sprawdzenie obecno¶ci uk³adu, |
 | wys³anie polecenia "Match ROM" wskazanie na konkretny uk³ad, |
 | wys³anie polecenia "Convert T" odczytaj temperaturê, |
 | odczekaj minimum 500 ms, |
 | wys³anie RESETu, |
 | sprawdzenie obecno¶ci uk³adu, |
 | wys³anie polecenia "Match ROM", |
 | wys³anie polecenia "Read Scratchpad" - ¿±danie odczytania zawarto¶ci pamiêci, |
 | czytanie temperatury, |
 | RESET, |
 | sprawdzenie obecno¶ci uk³adu. |
Powy¿sza procedura jest zaimplementowana w za³±czonym programie
dla BASCOM 8051 DEMO (2.06) - Termometr
wer. 1.1 (starsza wersja 1.0 z b³êdem - Termometr.BAS)
Uwagi do projektu:
 | ca³kowicie pomin±³em kontrolê CRC przekazywanych danych; |
 | uk³ad wydaje mi siê dzia³a prawid³owo, tzn. nie sprawdza³em jego odczytów z przyrz±dami laboratoryjnymi ale porównuj±c z termometrem zaokiennym (temperatury ujemne) i pokojowym
(dodatnie) otrzyma³em zbli¿one odczyty; |
 | podczas prób z wysokimi temperaturami powy¿ej 41,5 st. termometr zaczyna pokazywaæ 0 (zero)
stopni (patrz uwaga poni¿ej).
:-))
Nie wiem, czy jest to wada mojego egzemplarza czy co¶ trzeba jeszcze zrobiæ by osi±gn±æ katalogowy zakres do 125 st., który jest mi potrzebny (do pomiaru
np. temp. wody w bojlerze). |
 | Temperatury ujemne sprawdzi³em maksymalnie do -24 st. w zamra¿arce :-)) |
Opis b³êdu:
Okaza³o siê, ¿e pope³ni³em b³±d,
który mi wskaza³ Krzysztof S. (dziêki !). Przeoczy³em fakt, opisany w
helpie, ¿e polecenie Waitms dopuszcza tylko warto¶ci 1-255.
Zamiast
polecenia Waitms 500 u¿y³em teraz dwa razy Waitms 250, co da³o czujnikowi
DS1820 czas na pe³ne dokonanie konwersji temperatury i zacz±³em
je odczytywaæ równie¿ w zakresie powy¿ej 41,5 st. C.
|