Digitální teploměr s Arduinem a LM35

Teploměr je užitečné zařízení pro nejen dlouhodobé měření teploty.

Digital Thermometer Project using Arduino and LM35 Temperature Sensor

V tomto návodu si vytvoříme digitální teploměr, který naměřenou teplotu dokáže zobrazit na připojeném LCD displeji. Pro měření teploty byl vybrán senzor teploty LM35 a LCD displej 16×2 znaky.
Proto lze tento návod rozdělit na 3 části – načtení dat ze senzoru LM35, přepočet dat na stupně Celsia pomocí Arduina a následné vytištění výsledku na LCD displej.

Arduino Thermometer Block Diagram

V tomto návodu je použito jako řídící člen Arduino UNO. Vybraný teplotní senzor LM35 na svém výstupu poskytuje napětí, které je přímo úměrné měřené teplotě okolí, kdy 1°C odpovídá 10 mV. Pokud tedy například naměříme napětí 250 mV, tak teplota v okolí je přibližně 25°C.
Celý průběh tedy probíhá tak, že načteme pomocí Arduino analogového vstupu výstupní napětí ze senzoru LM35, to přepočteme na stupně Celsia a tento výsledek zobrazíme na LCD displeji.

LM35 Temperature Sensor Pins

Schéma zapojení

Arduino Based Digital Thermometer Circuit Diagram

Na schématu zapojení vidíme, že LCD displej je zapojen přímo do Arduina a pro řízení jasu je přidaný potenciometr. Senzor je pak zapojen tak, že první pin je napájecí, druhý datový a třetí GND (viz obrázek výše).

Zdrojový kód

Ve zdrojovém kódu si můžeme všimnout, že pro získání teploty nejprve do první proměnné načteme data ze senzoru. Tyto data poté přepočteme na napětí v milivoltech (násobení 5V/1023) a následně a teplotu ve stupních. A díky použití proměnných float získána teplota má i desetinnou část.
V kódu si také můžete všimnout vytvořeného znaku pro stupně, který není v běžné sadě znaků LCD displeje.

/*-----------Arduino LM35 Code-------------*/
/*-----------Digital Thermometer Using Arduino-------------*/
#include
LiquidCrystal lcd(7,6,5,4,3,2);
#define sensor A0
byte degree[8] = 
              {
                0b00011,
                0b00011,
                0b00000,
                0b00000,
                0b00000,
                0b00000,
                0b00000,
                0b00000
              };
void setup()
{
  lcd.begin(16,2);
  lcd.createChar(1, degree);
  lcd.setCursor(0,0);
  lcd.print("    Digital    ");
  lcd.setCursor(0,1);
  lcd.print("  Thermometer   ");
  delay(4000);
  lcd.clear();
  lcd.print(" Circuit Digest  ");
  delay(4000);
  lcd.clear();
}
void loop()
{
  /*---------Temperature-------*/
     float reading=analogRead(sensor);
     float temperature=reading*(5.0/1023.0)*100;
     delay(10);
  
  /*------Display Result------*/
    lcd.clear();
    lcd.setCursor(2,0);
    lcd.print("Temperature");
    lcd.setCursor(4,1);
    lcd.print(temperature);
    lcd.write(1);
    lcd.print("C");
    delay(1000);
}

Video

Převzato a přeloženo z:
https://circuitdigest.com/microcontroller-projects/digital-thermometer-using-arduino

Arduino Uno, Mega, Senzory, Moduly za

VÝHODNOU CENU

Luboš