Wstęp
Jedną z możliwości realizacji odczytu temperatury za pomocą Arduino jest układ LM35.
LM35 jest specjalizowanym układem scalonym, którego napięcie wyjściowe jest wprost proporcjonalne do temperatury mierzonej w stopniach Celsjusza.
Parametry LM35
Dotyczy: LM35 Texas Instruments
Napięcie zasilania: 4…30V
Współczynnik przetwarzania: 10 mV/°C
Dokładność: 0.5°C
Zakres temperatur: -55°C do 150°C
Pobór prądu: mniej niż 60 μA
Rozkład wyprowadzeń w obudowie TO-92
+Vs – zasilanie
Vout – wyjście
GND – masa
Podłączenie
Wyprowadzenie +Vs podłączamy do złącza 5V w Arduino
Wyprowadzenie GND podłączamy do masy Arduino GND.
Vout podłączamy do pinu analogowego Arduino (w naszym przypadku pinu numer 1).
LM35 termometr – kod programu
const int PIN = 1; const int SUPPLY_VOLTAGE = 5; void setup() { Serial.begin(9600); } void loop() { int val = analogRead(PIN); float tempCel = (SUPPLY_VOLTAGE * val / 1024) / 10; Serial.println("Temperatura = " + tempCel + "*C"); delay(1000); }
Opis działania
W metodzie setup() inicjalizujemy port szeregowy.
Następnie w pętli programu loop() odczytujemy wartość analogową na pinie zdefiniowanym jako wartość stałej PIN. W naszym przypadku jest to PIN analogowy numer 1.
Mając na uwadze, że temperatura zmienia się 10mV na każdy stopień Celsjusza, funkcja analogRead() zwaraca wartości od 0 do 1023, a przetwornik analogowo-cyfrowy konwertuje poziomy zgodnie z formułą
adcValue = val * 1024 / SUPPLY_VOLTAGE
uzyskujemy formułę:
float tempCel = (SUPPLY_VOLTAGE * val / 1024) / 10;
SUPPLY_VOLTAGE jest napięciem zasilania czujnika – w naszym wypadku 5V.