Arduino - TMP36 Temperatursensor

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×TMP36 Temperature Sensor
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V3 Starter-Kit (Arduino enthalten)
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 TMP36-Temperatursensor

Pinbelegung

Der TMP36-Temperatursensor hat drei Anschlüsse:

  • GND-Pin: muss mit GND (0V) verbunden werden
  • VCC-Pin: muss mit VCC (5V) verbunden werden
  • +Vs-Pin: ist die Stromversorgung für den Sensor, die zwischen 2,7 V und 5,5 V liegen kann
  • Vout-Pin: Die Ausgabespannung, die linear proportional zur Temperatur ist, sollte mit einem analogen Eingang am Arduino verbunden werden
Pinbelegung des TMP36-Temperatursensors

Wie es funktioniert

Der TMP36 liefert eine Spannung, die linear proportional zur Temperatur in Grad Celsius ist. Der Skalierungsfaktor des TMP36 beträgt 10 mV/°C. Das bedeutet, dass die Temperatur berechnet wird, indem die am Ausgangspin gemessene Spannung (in mV) durch 10 geteilt wird.

Verdrahtungsdiagramm

Arduino TMP36-Temperatursensor Verdrahtungsdiagramm

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

So programmiert man den TMP36-Temperatursensor

  • Erhalten Sie den ADC-Wert des Temperatursensors, indem Sie die analogRead() Funktion verwenden.
int adcVal = analogRead(PIN_TMP36);
  • Wandle den ADC-Wert in eine Spannung um.
// Ersetze 5.0 durch 3.3, wenn du einen 3.3V Arduino verwendest float voltage = adcVal * (5.0 / 1024.0);
  • Wandle die Spannung in Grad Celsius um.
float tempC = (voltage - 0.5) * 100;
  • (Optional) Celsius in Fahrenheit umrechnen
float tempF = tempC * 9 / 5 + 32;

Arduino-Code

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino-tmp36-temperature-sensor */ #define ADC_VREF 5.0 // in volt #define ADC_RESOLUTION 1024.0 #define PIN_TMP36 A0 void setup() { Serial.begin(9600); } void loop() { // get the ADC value from the TMP36 temperature sensor int adcVal = analogRead(PIN_TMP36); // convert the ADC value to voltage float voltage = adcVal * (ADC_VREF / ADC_RESOLUTION); // convert the voltage to the temperature in Celsius float tempC = (voltage - 0.5) * 100; // convert the Celsius to Fahrenheit float tempF = tempC * 9 / 5 + 32; // print the temperature in the Serial Monitor: Serial.print("TMP36 Temperature: "); Serial.print(tempC); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(tempF); // print the temperature in Fahrenheit Serial.println("°F"); delay(1000); }

Schnelle Schritte

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

Verbesserung der Temperaturgenauigkeit

Im obigen Code verwenden wir standardmäßig die Referenzspannung des ADC (5 V ~ 5000 mV). Wir können die Temperaturauflösung erhöhen, indem wir die Referenzspannung auf 3,3 V (3300 mV) ändern. Diese Referenzspannung kann geändert werden, indem zwei Pins, 3,3 V und AREF, miteinander verbunden werden, wie im unten gezeigten Diagramm.

Arduino TMP36-Temperatursensor Verdrahtungsdiagramm

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

Die untenstehende Tabelle zeigt den Unterschied zwischen der Verwendung von 5000 mV und 1100 mV als Referenzspannungen.

Vref(mV) 5000 mV (by default) 3300 mV
Reading Resolution 5000/1024 = 4.88 mV 3300/1024 = 3.22 mV
Temperature Resolution 0.49°C 0.32°C

Arduino-Code

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino-tmp36-temperature-sensor */ #define ADC_VREF 3.3 // in volt #define ADC_RESOLUTION 1024.0 #define PIN_TMP36 A0 void setup() { Serial.begin(9600); analogReference(EXTERNAL); // set the voltage reference from VREF pin } void loop() { // get the ADC value from the TMP36 temperature sensor int adcVal = analogRead(PIN_TMP36); // convert the ADC value to voltage float voltage = adcVal * (ADC_VREF / ADC_RESOLUTION); // convert the voltage to the temperature in Celsius float tempC = (voltage - 0.5) * 100; // convert the Celsius to Fahrenheit float tempF = tempC * 9 / 5 + 32; // print the temperature in the Serial Monitor: Serial.print("TMP36 Temperature: "); Serial.print(tempC); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(tempF); // 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!