Měření teploty analogovým čidlem TMP36

Popište vlastnosti, parametry a zapojení čidla TMP36 k Arduinu. Čím se liší (parametrově/zapojením) od čidla DS18B20? Jakým způsobem připojím 3 tato čidla k jednomu Arduinu? Uveďte ukázkový kód, který zobrazí naměřenou hodnotu čidla na Arduinu, hodnotu napětí a příslušnou teplotu.

Měření teploty analogovým čidlem TMP36

Vlastnosti

TMP36 je nízkonapěťové teplotní čidlo, které dokáže měřit teplotu. Jedná se v podstatě o dokonalý termistor, který dokáže měnit svůj odpor v závislosti na teplotě, tím pádem mění i svoje napětí podle teploty. Čidlo je kalibrované, takže má v sobě zapsané určité hodnoty pro danou teplotu. Tyto hodny jsou od 0 - 1023 a čidlo je získává podle teploty. Čím je teplota větší, tím je i daná hodnota větší. Na základě těchto hodnot, dokážeme odvodit napětí, pokud známe maximální hodnotu napětí. Ta je u Arduina Leonardo 3,3V nebo 5V. Podle toho vypočítáme napětí, ze kterého odvodíme teplotu, jelikož víme kolik voltů je 1℃. Zjistíme teplotu. Podle tohoto systému vytvoříme program, který musíme ještě lehce upravit, aby čidlo zjistilo teplotu s co největší přesností.

Parametry

Čidlo měří teplotu. Vstupní napětí, které čidlo potřebuje je 2,7V minimum a 5,5V maximum. Čidlo je kalibrované, tzn. má vepsané hodnoty napětí vůči teplotě. Konkrétně 10mV je 1℃. Přesnost čidla je velmi malá a činí +-2℃, což je dost velká odchylka. Dokáže měřit teploty od -45℃ do +125℃. Důležitá je i vlastnost tzv. offset voltage, která se odečítá od naměřeného napětí. Její hodnota je 0,5V a musí se objevit ve výpočtech.

Pro funkci programu je nutné přidat jednu knihovnu. Jmenuje se „Adafruit Unified Sensors by Adafruit“. Bez ní program nebude fungovat.

Zapojení

Zapojení je velmi jednoduché. Čidlo má tři nožičky, což jsou tři výstupy. Při pohledu ze spoda je vlevo vstupní napětí (5/3,3V), uprostřed je výstup dat a vpravo je zemění.

Zapojíme do desky arduina přes pomocnou destičku. Vstup pro data bude analogový vstup A1, můžeme však použít kterýkoliv jiný analogový vstup. Viz obrazék zapojení.

Rozdíl oproti DS18B20

Parametrově

DS18B20 je digitální čidlo. Hlavním rozdílem je, že nezaznamenává přímý kontinuální průběh, ale jenom hodnoty 0 nebo 1. Má tedy omezené množství hodnot. Navzdory tomu, má ovšem mnohem větší přesnost, která je +-0,5V a také má větší rozsah měření. Funguje víceméně podobně jako analogový teploměr, akorát používá jiné knihovny, konkrétně „ DallasTemperature a OneWire “ pro měření teploty a komunikaci.

Zapojení

Jelikož se jedná o digitální teploměr, zapojuje se do digitálního vstupu arduina. Také nožičky mají jiné uspořádání. Při pohledu zespoda je vpravo zemění a vlevo napětí, tedy přesně obráceně než u analogového teploměru. Při zapojení musíme přidat rezistor, jelikož to čidlo vyžaduje, aby se nespálilo. Rezistor se připojuje mezi napětí a data, a jeho hodnota je 10kΩ.

Zapojení tří čidel

zapojení

Čidla připojuji každe samostatně. Všechny musí mít zdroj napětí a být uzeměné. Výstup dat je potom rozdělen do 3 odlišných vstupů arduina. Například A1, A2, A3. Získávání dat pak musím rozdělit. Arduino zvládne komunikovat se všemi třemi čidli po jedné lince, ovšem né zároveň, a proto je nutné rozdělit sběr dat. Nejprve komunikuje s prvním, poté s druhým a nakonec s třetím, toto záleží na nás. Místo funkce analogRead(sensorPin); píšeme analogRead(A1);… abychom dokázali oddělit sběr dat a získat tak 3 naměřené hodnoty. Díky zapojení tří čidel můžeme tedy dosáhnout většího množství výsledků, a tudíž i větší přesnosti při výpočtu aritmetického průměru.

Montáž

Kód

Ukázkový kód zobrazující hodnotu na čidlu, napětí a teplotu.

Poznámnky

V kódu na řádku 19 v závorce odečítá právě offset voltage pro správný výsledek. Program může obsahovat malé chyby, ale stránka Tinkercad ho vyhodnotila jako správný. Při jiných hodnotách program nefungoval, je možné, že mu chyběli knihovny nebo nefungoval, tak jak měl.

— Záhorský Lukáš, 27. 12. 2017, 22.37

Do dnešní půlnoci bylo datum odevzdání podle mých posledních informací, děkuji a doufám, že budete spokojen. :)