K±cik BASCOM'a

HOME
 
Wstêp
Mój Projekt
Strony BASCOM'owe
EdWin
Kolejki
PDF'y
 
>> PCB <<
 
Strony z  Elektronik±
 
O mnie
49.963
 

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.


  Rumia, maj 2015.