Page
Stránky / Súčiastky ku Arduinu / Meranie teploty /
DS18B20 je digitální senzor teploty s rozlišením 9-12 bitů. Komunikuje pomocí rozhraní One Wire. Datasheet s podrobnostmi je na stránce výrobce. Obvod je nutností pro každého amatérského experimentátora a dříve nebo později skončíte při pokusu poskládat pomocí něho nějakou malou meteorologickou stanici.
Běžný uživatel si tento obvod koupí v pouzdře TO-92.
Obvod lze připojit dvěma způsoby:
Pro použití je třeba nainstalovat dvě knihovny:
Připojení je jednoduché. Přesně podle popisu zapojení. Je třeba si jen vybrat, který digitální vstup bude číst údaje ze senzoru. V tomto případě je to digitální pin 2.
Rozlišení měření je nepřímo úměrné času, který potřebuje senzor na A/D převod.
Rozlišení v bitech | Doba měření | Rozlišení měření |
---|---|---|
9 | 93,75 ms | 0,5 °C |
10 | 187,5 ms | 0,25 °C |
11 | 375 ms | 0,125 °C |
12 | 750 ms | 0,0625 °C |
Samozřejmě, že každý bude chtít měřit v nejvyšším rozlišení a co nejčastěji, ale je třeba počítat s více problémy:
Přesnost senzoru je:
V datasheetu se ještě můžete dočíst, že senzor obsahuje interní paměť 8 bajtů, a z toho 3 bajty se zálohují do EEPROM. Jsou to dva bajty pro alarm, což je funkce, kterou v amatérských podmínka asi nebudete potřebovat. Poslední bajt je konfigurační registr, v němž je uloženo rozlišení měření.
Během měření a během zápisu do EEPROM senzor potřebuje proud 1,5 mA.
Bez problémů můžeme připojit i více senzorů na jednu sběrnici One Wire. Každý senzor má své jedinečné číslo (adresu), pomocí kterého s nim komunikujeme.
Před pokusy se senzorem je vhodné si otestovat, zda je senzor správně připojen. Na to je použitelný příklad, který je dodáván přímo s knihovnou OneWire. Jmenuje se DS18x20_Temperature.ino. Vůči přiloženému obrázku se liší pinem, na kterém je připojen senzor. V příkladu je použit pin 10.
Po spuštění vypíše na sériový port všechny nalezené senzory. Například v tomto případě vypsal informace o dvou připojených senzorech.
ROM = 28 8C 6E 45 6 0 0 8A Chip = DS18B20 Data = 1 A3 1 4B 46 7F FF D 10 CE CRC=CE Temperature = 26.19 Celsius, 79.14 Fahrenheit ROM = 28 49 BD 44 6 0 0 61 Chip = DS18B20 Data = 1 A2 1 4B 46 7F FF E 10 D8 CRC=D8 Temperature = 26.12 Celsius, 79.02 Fahrenheit No more addresses.
Druhá možnost je příklad z DallasTemperature, který se jmenuje Tester.ino. Ten vypisuje údaje v následující podobě.
Dallas Temperature IC Control Library Demo Locating devices...Found 2 devices. Parasite power is: OFF Found device 0 with address: 288C6E450600008A Setting resolution to 9 Resolution actually set to: 9 Found device 1 with address: 2849BD4406000061 Setting resolution to 9 Resolution actually set to: 9 Requesting temperatures...DONE Temperature for device: 0 Temp C: 24.50 Temp F: 76.10 Temperature for device: 1 Temp C: 24.50 Temp F: 76.10
Seznam článků, kde se pracuje s tímto senzorem teploty:
07.09.2019