Výstavba, elektroinštalácie, chemické úpravy bazénov, víriviek a poradenstvo
Odoslať objednávku
This is an example of a HTML caption with a link.

Digitálne teplotné čidlo DS18B20 po zbernici 1-Wire ™

Obvod DS18B20 je digitálny teplotný snímač, Najčastejšie používaný v puzdre TO-92 s tromi vývodmi. Senzor komunikuje s nadradeným systémom pomocou zbernice 1-Wire ™, ktorá je vrátane rádu aplikačných poznámok opísaná pekne, napríklad na webe firmy Maxim. Rozlíšenie teplotného senzora je 12bitov, teda 0,0625 ° C. Presnosť je 0,5 ° C v teplotnom rozsahu -10 ° C až +85 ° C a 2 ° C v celkovom teplotnom rozsahu obvodu, teda -55 ° C až +125 ° C.

 


Princíp snímania teploty je v skratke taký, že pre čidlá vo vnútri sú dva oscilátory. Jeden je s nízkym teplotným koeficientom naopak druhý s vysokým. Akonáhle sa dá po zbernici čidlu príkaz na začatie prevodu (merania) teploty, spustí sa čítanie oboch týchto oscilátorov. Táto akcia trvá (podľa teploty) až 750ms a jej výsledkom je hodnota 12bitov zodpovedajúca aktuálnej teplote. Tá je potom uložená vo vnútorných registroch obvodu a čaká na jej vyčítanie z nadradeného obvodu. Jednou z ďalších predností tohto snímača je okrem iného aj možnosť napájania a prenosu dát po jednom vodiči. Túto možnosť som však nepoužil. Okrem obvodu DS18B20 existuje aj mnoho podobných čidiel, napríklad DS18S20. Každý takýto obvod, aj keď je vo svojom princípe rovnaký, je vždy v niečom odlišný, a tak ich nie je možné kombinovať ako v predchádzajúcom obrázku. Na obrázku uvedenom vyššie nie je možné nahradiť DS18B20 čidlom DS18S20!

 

 


Základné TTD obvodu DS18B20:
- Unikátne rozhranie tvorené jediným vodičom
- Každý obvod má 64 bitový kód uložený vo vnútornej pamäti ROM
- Nevyžaduje žiadne vonkajšie komponenty
- Napájanie obvodu môže byť aj z dátovej linky
- Napájanie je 3,0 V až 5,5 V
- Meria teplotu od -55 ° C do +125 ° C (-67 ° F do +257 ° F)
- Presnosť 0,5 ° C v rozmedzí od -10 ° C do +85 ° C
- Presnosť 2 ° C v rozmedzí od -55 ° C do +125 ° C
- Rozlíšenie teplomeru je voliteľné v rozsahu 9 až 12 bitov
- Nameranie teploty s rozlíšením 12 bitov trvá 750ms
- Ovládací program je kompatibilný s obvodom DS18B22


Jadro obvodu DS18B20 umožňuje nastaviť vlastnosti digitálneho teplomeru. Rozlíšenie prevodníka je užívateľsky nastaviteľné na 9, 10, 11, 12 bitov, čo zodpovedá veľkosti dielikov 0,5 ° C, 0,25 ° C, 0125 ° C, 0,0625 ° C. Základné rozlíšenie po pripojení napájania je 12 bitov. Obvod je po pripojení napájania v nečinnom stave. Meranie teploty (AD prevod ), môže byť spustené príkazom (44H). Výstupné dáta sú v stupňoch Celzia, pre aplikácie s Farenhaitovov stupnicou, kde je nutné použiť prevodový vzorec (F = 9/5 * ( C+32 )). Namerané dáta sú uložené do 16-bitového registra. Teplota je kladná, keď S = 0 a záporná, keď S = 1. Ak je prevodník nastavený na 12-bitov, všetky bity v registri budú obsahovať platné údaje. Pri nastavení nižších rozlíšení, nie sú definované nízke bity. Napríklad pri rozlíšení prevodníka 9-bitov, nie sú použité bity 0, 1, 2. Tabuľka ukazuje vzory pri výstupných dátach rôznych teplotách, prevodník je nastavený na 12-bitové rozlíšenie.

 

Niekoľko základných príkazov potrebných pre prácu s teplomerom DS18B20
0CCh
Procesor môže tento príkaz použiť tesne po resete na to, aby ďalším príkazom oslovil všetky zariadenia na zbernici, bez nutnosti použitia ďalších kódovacích informácií. Napríklad je možné prikázať všetkým obvodom, aby vykonali teplotnú konverziu pomocou sekvencie príkazu 0CCh, 044h. Príkaz šetrí čas pri komunikácií, ale nesmie byť použitý v súvislosti s príkazmi pre čítanie, keď je na zbernici viac obvodov. Odpovedali by všetky zrazu došlo by ku kolízii dát.

044h
Tento príkaz spustí jeden prevod teploty. Po prevode je výsledná teplota uložená do dvoch bajtov pamäte RAM obvod sa vráti do nízko odberového režimu. Keď je obvod napájaný parazitne, procesor musí držať zbernicu v log.1 po celú dobu trvania prevodu. V prípade, že je použité externé napájanie, môže prebiehať ďalšia komunikácia s obvodom. Obvod bude zodpovedať log.0 až do ukončenia prevodu.

0BEh
Umožní čítanie pamäte obvodu. Presun dát začína najnižším bitom bajtu 0 pokračuje cez celú pamäť až k bajtu 9, kde je uložený CRC kód. Čítanie je možné ukončiť sekvenciou reset, keď nie sú ďalšie dáta potrebné. Veľakrát stačí prečítať len prvé dve hodnoty, kde je uložená nameraná teplota.

033h
Tento príkaz je možné použiť tam, kde je iba jeden obvod na zbernicu. Dovoľuje riadiacemu obvodu čítať 64-bitový kód obvodu. Keď tento príkaz použijeme na zbernicu, kde je viac obvodov, dôjde ku kolízii dát, pretože sa všetky obvody pokúsia odpovedať naraz.


055h
Tento príkaz nasledovaný 64-bitovým kódom, umožní procesoru vybrať jedno z viacerých zariadení pripojených na zbernicu. Bude komunikovať iba s tým obvodom, ktorému zodpovedá 64-bitový kód. Ostatné obvody budú čakať na resetovací impulz vyslaný procesorom.

 

Príklad sekvencie pre meranie teploty obvodom DS18B20, obvod je na zbernici iba jeden
1. Reset zbernice.
2. Príkaz 0CCh, Príkaz 044h - začne meranie.
3. Časový limit 0,75 sekúnd potrebná pre prevod napätia na dáta.
4. Príkaz 0CCh, Príkaz 0BEh - obvod je pripravený vyslať obsah svoje pamäti po zbernici.
5. Čítanie bajtu zo zbernice, bajt obsahuje spodných osem bitov nameranej teploty.
6. Čítanie bajtu zo zbernice, bajt obsahuje horné štyri bity nameranej teploty.

Základné rozlíšenie teplomeru je 0,0625 ° C, najvyššie z dvanástich bitov je znamienko.

 


Popis obvodu DS18B20 – Scratchpad
Pamäť obvodu DS18B20 je zorganizovaná, ako je znázornené v tabuľke. Pamäť sa skladá z pracovných registrov RAM - scratchpad a z energetický nezávislej, elektrický vymazateľnej EEPROM, v ktorej je uložené nastavenie teplotného alarmu pre vysoké a nízke teploty a konfiguračný register. Scratchpad pomáha udržať údaje pri komunikácií cez 1-Wire zbernicu, a môžeme ju chápať ako záchytný register. Dáta sú uložené do scratchpad po použití po príkazu "Piš scratchpad " [0x4E]. Zapísaná dáta opäť môžeme overiť príkazom "Čítaj scratchpad " [0xBE]. Keď už máme v scratchpade správne údaje, môžeme pomocou príkazu "Kopíruj scratchpad " [0x48] preniesť dáta do EEPROM. Tento proces zabezpečí neporušenosť údajov pri modifikácii pamäte. Scratchpad je zorganizovaný ako 9 registrov pamäte. Prvé dva registre obsahujú LSB MSB namerané teploty. Tretí a štvrtý register sú prechodné kópie TH TL z EEPROM, sú obnovené s každým resetom napájania. Piaty register je prechodné kópia konfiguračného registra, je tiež obnovovaná s každým resetom napájania. Šiesty až ôsmy register, je použitý na vnútorné výpočty, preto neobsahuje stabilnú informáciu . Deviaty register obsahuje kontrolu cyklickým kódom (CRC), ktorý je CRC pre všetkých osem predchádzajúcich registrov. V nasledujúcej tabuľke sú znázornené jednotlivé váhy bitov príslušného registra, znak "S" značí znamienkový bit (signed).

 

 

Popis obvodu DS18B20 - teplotní register
Hlavné funkcie obvodu DS18B20 je priamy prevod teploty do digitálnej podoby. Presné rozlíšenie teplomeru je konfigurovateľné v rozsahu deviatich až dvanástich bitov. Štandardne je nastavený na 12-bitové rozlíšenie (rozlíšenie je potom 0,0625 ° C). Po prijatí príkazu "Preveď teplotu" [0x44] je po určitej dobe vykonaná teplotná konverzia, binárne dáta o teplote sú uložené v scratchpade v 16-bitovom formáte. Prvých päť bitov slúži na signalizáciu zápornej teploty sú zhodné (Signed). Číslo je teda v doplnkovom formáte. Informácie z tohto teplotného registra môžu byť získané cez 1 - Wire zbernicu po prijatí príkazu "Čítaj blok" [0xBE]. Dáta sú prenášané cez 1-Wire zbernicu, kde sa ako prvý vyšle LSB a nakoniec MSB teplotného registra. Do doby, než je prevedená teplota, je v teplotných registroch hodnota +85 ° C. Nasledujúca tabuľka popisuje presne oba registre TH TL a ich vzťah k teplote v stupňoch Celzia (platí pre 12 bitové rozlíšenie).

 

Popis obvodu DS18B20 - konfigurační register
Piaty bajt pamäte je konfiguračný register. Ten obsahuje informáciu, ktorá sa využíva pre určenie rozlíšenia teploty v digitálnej konverzii. Konfiguračné bity sú umiestnené na piatom a šiestom mieste. Nastavenie bitov taktiež rozhoduje o tom, ako dlho bude trvať konverzia teploty. Štandardné nastavenie týchto EEPROM bitov je R0 = 1 , R1 = 1 (t.j. 12-bitová konverzia).

 


Popis obvodu DS18B20 - register alarmu
Po tom, čo vykoná teplotné čidlo konverziu, sa namerané hodnoty teploty porovnajú s registrom alarmu, a uložia sa do oboch teplotných registrov. Keďže tieto registre sú len 8-bitové, porovnávajú sa iba najvyššej platné bity a ostatné bity sú ignorované. Ak je výsledok merania teploty vyšší ako TH, alebo nižší ako TL, nastaví sa príznak alarmu vo vnútri obvodu. Tento príznak je aktualizovaný s každým meraním teploty. Pokiaľ je príznak alarmu nastavený, DS18B20 reaguje na ROM príkaz - "hľadaj alarm". Práve toto dovoľuje viacerým zariadeniam typu DS18B20 byť zapojených na jednej zbernici. Každé zariadenie si vnútorne stráži nastavené medze teploty. Ak na ktoromkoľvek čidle teplota prekračuje hranice nastavené alarmom, čidlo môže byť ihneď identifikovateľné.

 

 

 

Vyvolanie funkcie pre meranie tepoty s priradením teploty premennej "T"

 

 

 

Funkcia pre vypočítanie teploty  " print_temp"

 

 

Popis obvodu DS18B20 - teplotní register

AKTUÁLNE ČLÁNKY:

Okrem bazénov sa venujeme aj:

OBSAH:

-----------------------

Články a komentáre

-----------------------

Prvotné oživenie ARDUINA

-----------------------

REFERENCIE jazyka pre ARDUINO

-----------------------

Dosky ARDUINA + popis

-----------------------

Vlastnosti MCU ATmega 328

-----------------------

Základné zapojenie ATmega 328

-----------------------

Vnútorné schémy zapojenia ARDUINA

-----------------------

Arduino software

-----------------------

Výučbové lekcie

-----------------------

Programy na kreslenie schém projektov

-----------------------

Projekty ARDUINO

-----------------------

Diskusie, rady a postrehy k ARDUINU

-----------------------

Domovská stránka ARDUINA

-----------------------

Zaujímavá dokumentácia pre prácu s ARDUINOM

-----------------------

Seeeduino

-----------------------

ICSP popis

-----------------------

Princíp činnosti zbernice I2C 

-----------------------

SLEEP mód, popis

-----------------------

Princíp činnosti sériového portu     „1-Wire“ 

-----------------------

Výborné hardwarové doplnky k ARDUINU, SEEEDUINU

-----------------------

Vlastné projekty s ARDUINOM

-----------------------

Zaujímavé odkazy na stránky

-----------------------

Niektoré dôležité knižnice

-----------------------

Základné info o obvode DALLAS 18B20

-----------------------

Inzercia

-----------------------

________________

 

TOPlist

________________



Obsah:

Partneri: