Arduino Uno a teplotný senzor LM35

Jedným z najjednoduchších spôsobov, ako pridať snímanie teploty do vášho projektu, je použiť snímač teploty LM35. Tieto senzory sú pomerne presné a na fungovanie nepotrebujú žiadne externé komponenty. Takže s niekoľkými pripojeniami a kódom Arduino budete okamžite snímať teplotu!

Senzor LM35 nevyžaduje kalibráciu a poskytuje typickú presnosť ±0,5°C pri izbovej teplote a ±1°C v celom rozsahu teplôt -55°C až +155°C. Senzor môže byť napájaný 4V až 30V napájaním a počas aktívnych teplotných premien spotrebuje menej ako 60µA, čím poskytuje veľmi nízke samozahrievanie (menej ako 0,08°C).
Špecifikácia :
LM35
Napájanie | 4V až 30V |
Odber prúdu | 60 µA |
Teplotný rozsah | −55°C až +155°C |
Presnosť | ±0,5°C |
Pri 25°C | 250mV |
LM35 Využíva skutočnosť, že úbytok napätia medzi bázou a emitorom (priepustné napätie – Vbe) tranzistora zapojeného diódou klesá známou rýchlosťou so zvyšujúcou sa teplotou. Presným zosilnením tejto zmeny napätia je ľahké generovať analógový signál, ktorý je priamo úmerný teplote.
LM35 sa ľahko používa; stačí pripojiť ľavý kolík k napájaniu (4V až 30V) a pravý kolík k zemi (za predpokladu, že plochá strana snímača smeruje k vám). Potom bude mať stredný kolík analógové napätie, ktoré je priamo úmerné (lineárne) teplote v °C. To možno ľahko vidieť na charakteristike výstupného napätia vs. Analógové výstupné napätie je nezávislé od zdroja napájania.
Ako otestovať LM35 ?
Stačí pripojiť ľavý kolík k napájaniu 4V až 30V a pravý kolík k zemi (za predpokladu, že plochá strana snímača smeruje k vám). Teraz pripojte multimeter v režime jednosmerného napätia k zemi a strednému kolíku. Pri izbovej teplote (25°C) by napätie malo byť približne 0,25V.
LM35 sa dodáva v troch rôznych formách, ale najbežnejším typom je 3-kolíkový TO-92 obal, ktorý vyzerá rovnako ako tranzistor.
Piny :

- +Vs ~ je napájanie snímača, ktoré môže byť medzi 4V až 30V.
- Vout ~ kolík vytvára analógové napätie, ktoré je priamo úmerné (lineárne) teplote. Mal by byť pripojený k analógovému (ADC) vstupu.
- GND ~ je uzemňovací kolík.
Pripojenie LM35 k Arduinu
Stačí pripojiť tri kolíky: dva pre napájanie a jeden pre čítanie hodnoty snímača. Senzor je možné napájať 5V. Kladné napätie sa pripája k „+ Vs“ a zem sa pripája k „GND“. Stredný kolík „Vout“ je výstup analógového signálu zo senzora a pripája sa k analógovému vstupu A0 Arduina.

Ak chcete merať teplotu vzduchu, ponechajte senzor na vzduchu alebo ho pripevnite na objekt, ktorého teplotu chcete merať, napríklad na chladič.
Čítanie údajov
Ako môžete vidieť na schéme zapojenia vyššie, výstup LM35 je pripojený k jednému z analógových vstupov Arduina. Hodnotu tohto analógového vstupu je možné prečítať pomocou funkcie analogRead().
Funkcia analogRead() však v skutočnosti nevracia výstupné napätie snímača. Namiesto toho mapuje vstupné napätie medzi 0 a referenčným napätím ADC (technicky je to prevádzkové napätie, t.j. 5 V alebo 3,3 V, pokiaľ ho nezmeníte) na 10-bitové celočíselné hodnoty v rozsahu od 0 do 1023. Na premenu voltov na teplotu použite tento vzorec:
Teplota (°C) = Vout * 100
Kód
Nasledujúci náčrt ukazuje rýchly spôsob čítania snímača teploty LM35 a môže slúžiť ako základ pre praktickejšie experimenty a projekty. Jednoducho načíta hodnotu z LM35 na pine A0 a vytlačí aktuálnu teplotu (v °C aj °F) na sériový monitor.
//Definujte analógový kolík, ku ktorému je pripojený kolík Vout LM35
#define sensorPin A0
void setup() {
// Začnite sériovú komunikáciu s prenosovou rýchlosťou 9600
Serial.begin(9600);
}
void loop() {
//Získajte údaj o napätí z LM35
int reading = analogRead(sensorPin);
//Premeňte tento údaj na napätie
float voltage = reading * (5.0 / 1024.0);
//Premeňte napätie na teplotu v stupňoch Celzia
float temperatureC = voltage * 100;
// Vytlačte teplotu v stupňoch Celzia
Serial.print("Teplota: ");
Serial.print(temperatureC);
Serial.print("\xC2\xB0"); // zobrazuje symbol stupňa
Serial.print("C | ");
//Vytlačte teplotu vo stupňoch Fahrenheita
float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
Serial.print(temperatureF);
Serial.print("\xC2\xB0"); // zobrazuje symbol stupňa
Serial.println("F");
delay(1000); //počkajte sekundu medzi odčítaniami
}
Vysvetlenie kódu:
Náčrt začína definovaním kolíka Arduino, ku ktorému je pripojený kolík Vout snímača.
#define sensorPin A0
V nastavení inicializujeme sériové spojenie s počítačom.
void setup() {
Serial.begin(9600);
}
V slučke najprv načítame analógový signál z LM35 pomocou funkcie analogRead().
int reading = analogRead(sensorPin);
Ďalej použijeme vzorce, na konverziu analógového čítania.
float voltage = reading * (5.0 / 1024.0);
float temperatureC = voltage * 100;
Potom sa výsledky vytlačia na sériovom monitore.
Serial.print("Teplota: ");
Serial.print(temperatureC);
Serial.print("\xC2\xB0"); // shows degree symbol
Serial.print("C | ");
Hodnota teploty, ktorú dostaneme, je v stupňoch Celzia (°C). Prevedie sa na Fahrenheita (°F) pomocou jednoduchého vzorca a vytlačí sa na sériovom monitore.
float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
Serial.print(temperatureF);
Serial.print("\xC2\xB0"); // shows degree symbol
Serial.println("F");
Pridaj komentár