Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Arduino LCD-Thermometer mit LM35/LM36 Temperatursensor

Komponenten & Zubehör

Arduino UNO 1
LM35 oder LM36 Analog-Temperatursensor (TO-92) 1
16×2 LCD-Display (HD44780-kompatibel, z. B. weiß auf blau) 1
10 kΩ Potentiometer (Kontrastregelung LCD) – 50 kΩ geht auch 1
Breadboard 1
Steckbrücken (ca. 19 Stück) 1 Set

Alle Teile sind im offiziellen Arduino Starter Kit enthalten.

Aufbau

  1. LCD in Breadboard stecken, per Jumper an Arduino anschließen (Standard 4-Bit-Modus: RS→12, E→11, D4→5, D5→4, D6→3, D7→2, RW→GND, VSS→GND, VDD→5 V, A→5 V (ggf. mit Vorwiderstand), K→GND).
  2. Potentiometer: äußere Pins an 5 V und GND, mittlerer Pin an LCD Pin 3 (VO/Contrast).
  3. LM35/LM36: Pin 1 (VCC) → 5 V, Pin 3 (GND) → GND, Pin 2 (Signal) → Arduino A0. Achtung: Verpolung zerstört den Sensor (er wird extrem heiß).

Programmierung

Zwei Beispiel-Sketches (beide funktionieren mit LM35 und LM36, da beide 10 mV/°C liefern, LM36 hat 500 mV Offset bei 0 °C).

Variante 1 (von Gaige Kerns)

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int sensorPin = A0;
void setup() { lcd.begin(16, 2); }
void loop() {
  int tempC = getTemperature(sensorPin);
  int tempF = celsiusToFahrenheit(tempC);
  lcd.setCursor(0,0);
  lcd.print(tempF); lcd.print(" "); lcd.print((char)223); lcd.print("F");
  delay(200);
}
int getTemperature(int pin) {
  int reading = analogRead(pin);
  float voltage = reading * 5.0 / 1024.0;
  return (voltage - 0.5) * 100; // LM36: 500 mV Offset, 10 mV/°C
}
int celsiusToFahrenheit(int c) { return (c * 9 / 5) + 32; }

Variante 2 (einfacher, direkte Berechnung)

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int inPin = A0;
void setup() { lcd.begin(16, 2); }
void loop() {
  int value = analogRead(inPin);
  float millivolts = (value / 1024.0) * 5000;
  float celsius = millivolts / 10; // LM35: 10 mV/°C, 0 V bei 0 °C
  lcd.clear();
  lcd.setCursor(0,0); lcd.print(celsius); lcd.print("C");
  lcd.setCursor(0,1); lcd.print((celsius * 9)/5 + 32); lcd.print("F");
  delay(1000);
}

Hinweis: LM35 liefert 0 V bei 0 °C (10 mV/°C), LM36 liefert 500 mV bei 0 °C (10 mV/°C). Variante 1 kompensiert den Offset (voltage - 0.5), Variante 2 geht von LM35 aus. Für LM36 in Variante 2: float celsius = (millivolts - 500) / 10;.

Inbetriebnahme

  1. Code in Arduino IDE öffnen, Board/Port wählen, hochladen.
  2. Falls Display leer oder Kästchen zeigt: Potentiometer drehen bis Text klar lesbar.
  3. Fertig – misst Raumtemperatur in °C und °F.

Erweiterungsideen

Herstellungsprozess

  1. Schnelles, zuverlässiges Branderkennungssystem mit Samsung SAMI, Arduino UNO & Raspberry Pi
  2. Arduino Nano Flight Simulator 2020 Kontrollpanel – LCD & CDI Display
  3. Arduino Echtzeituhr für islamische Gebetszeiten bauen
  4. LCD-Animationen & Spiele mit Arduino UNO erstellen
  5. Bilder auf 1,17-Zoll-TFT-LCD mit Arduino UNO anzeigen
  6. Arduino & MPU6050: Präzise Servomotor-Steuerung mit SG90 & MG996R
  7. u-blox LEA-6H 02 GPS-Modul: Arduino & Python Integrationsanleitung
  8. Spracherkennung & Sprachsynthese auf Arduino Due meistern
  9. Zuverlässigen Wecker mit DS1302 RTC und Arduino UNO bauen
  10. 25-kHz-4-Pin-PWM-Lüftersteuerung mit Arduino Uno – Bau, Code & Test