Arduino Nano - LM35-Temperatursensor

Dieses Tutorial zeigt Ihnen, wie Sie den Arduino Nano verwenden, um die Temperatur vom LM35-Sensor auszulesen. Im Detail werden wir lernen:

Erforderliche Hardware

1×Official Arduino Nano
1×Alternativ: DIYables ATMEGA328P Nano Development Board
1×USB-A-zu-Mini-B-Kabel
1×LM35 Temperature Sensor
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über den LM35-Temperatursensor

Die Pinbelegung des LM35-Temperatursensors

Der LM35-Temperatursensor hat drei Pins:

  • GND-Anschluss: Dieser muss mit dem Massepunkt (0 V) verbunden werden.
  • VCC-Anschluss: Dieser muss mit dem VCC (5 V) verbunden werden.
  • OUT-Anschluss: Dieser Signalausgang liefert eine Ausgangsspannung, die linear proportional zur Temperatur ist, und sollte an einen analogen Pin des Arduino Nano angeschlossen werden.
Pinbelegung des LM35-Temperatursensors

Wie es funktioniert

Der LM35 erzeugt eine Spannung, die linear proportional zur Temperatur in Grad Celsius ist. Sein Skalierungsfaktor am Ausgang beträgt 10 mV/°C, was bedeutet, dass die Temperatur bestimmt werden kann, indem man die am Ausgangspin gemessene Spannung (in mV) durch 10 teilt.

Verdrahtungsdiagramm

Arduino Nano LM35-Temperatursensor-Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Siehe Der beste Weg, den Arduino Nano und andere Komponenten mit Strom zu versorgen.

Wie programmiert man den LM35-Temperatursensor?

  • Hole den ADC-Wert vom Temperatursensor, indem du die analogRead() Funktion verwendest.
int adcVal = analogRead(PIN_LM35);
  • Transformieren Sie den ADC-Wert in eine Spannung in Millivolt.
float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION);
  • Wandle die Spannung in eine Temperatur in Grad Celsius um.
float temperature_C = milliVolt / 10;
  • Optional: Celsius in Fahrenheit umrechnen.
float temperature_F = temperature_C * 9 / 5 + 32;

Arduino Nano-Quellcode

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-nano/arduino-nano-lm35-temperature-sensor */ #define ADC_VREF_mV 5000.0 // in millivolt #define ADC_RESOLUTION 1024.0 #define PIN_LM35 A6 // The Arduino Nano pin connected to LM35 sensor void setup() { Serial.begin(9600); } void loop() { // get the ADC value from the temperature sensor int adcVal = analogRead(PIN_LM35); // convert the ADC value to voltage in millivolt float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION); // convert the voltage to the temperature in Celsius float temperature_C = milliVolt / 10; // convert the Celsius to Fahrenheit float temperature_F = temperature_C * 9 / 5 + 32; // print the temperature in the Serial Monitor: Serial.print("Temperature: "); Serial.print(temperature_C); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(temperature_F); // print the temperature in Fahrenheit Serial.println("°F"); delay(1000); }

Schnelle Schritte

  • Kopiere den Code und öffne ihn in der Arduino-IDE.
  • Klicke in der Arduino-IDE auf die Schaltfläche Hochladen, um ihn an dein Arduino Nano zu senden.
  • Halte den Sensor in deiner Hand.
  • Schau dir das Ergebnis im seriellen Monitor an.
COM6
Send
Temperature: 26.31°C ~ 79.36°F Temperature: 26.44°C ~ 79.59°F Temperature: 26.50°C ~ 79.70°F Temperature: 26.56°C ~ 79.81°F Temperature: 27.06°C ~ 80.71°F Temperature: 27.75°C ~ 81.95°F Temperature: 28.37°C ~ 83.07°F Temperature: 29.00°C ~ 84.20°F Temperature: 29.56°C ~ 85.21°F Temperature: 30.00°C ~ 86.00°F Temperature: 30.31°C ~ 86.56°F Temperature: 30.62°C ~ 87.12°F Temperature: 30.87°C ~ 87.57°F
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Verbesserung der Temperaturgenauigkeit

Im obigen Code ist die Referenzspannung des ADC auf den Standardwert von 5 V bzw. 5000 mV eingestellt. Um die Temperaturauflösung zu erhöhen, kann die Referenzspannung auf INTERNAL geändert werden, die 1,1 V bis 1100 mV beträgt, mithilfe der analogReference() Funktion.

Diese Tabelle zeigt den Unterschied zwischen den Referenzspannungen von 5000 mV und 1100 mV.

Vref(mV) 5000 mV (by default) 1100 mV (INTERNAL)
Reading Resolution 5000/1024 = 4.88 mV 1100/1024 = 1.07 mV
Temperature Resolution 0.488 °C 0.107 °C
Temperature Range 0 to 500 °C 0 to 110 °C

Arduino Nano-Quellcode

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-nano/arduino-nano-lm35-temperature-sensor */ #define ADC_VREF_mV 1100.0 // in millivolt #define ADC_RESOLUTION 1024.0 #define PIN_LM35 A6 // The Arduino Nano pin connected to LM35 sensor void setup() { Serial.begin(9600); // switch to Internal 1.1V Reference analogReference(INTERNAL); } void loop() { // get the ADC value from the temperature sensor int adcVal = analogRead(PIN_LM35); // convert the ADC value to voltage in millivolt float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION); // ADC_VREF_mV = 1100 mV // convert the voltage to the temperature in Celsius float temperature_C = milliVolt / 10; // convert the Celsius to Fahrenheit float temperature_F = temperature_C * 9 / 5 + 32; // print the temperature in the Serial Monitor: Serial.print("Temperature: "); Serial.print(temperature_C); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(temperature_F); // print the temperature in Fahrenheit Serial.println("°F"); delay(1000); }

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!