Bemerkung
Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.
Warum beitreten?
Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.
Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.
Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.
👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!
2.2.2 Thermistor
Bemerkung
Je nach deiner Kit-Version überprüfe bitte, ob du ADC0834 oder MCP3008 hast, und fahre mit dem entsprechenden Abschnitt fort.
Einführung
Wie ein Fotowiderstand Licht erkennen kann, ist ein Thermistor ein temperatur- empfindliches elektronisches Bauteil, das zur Realisierung von Temperatursteuerungsfunktionen wie einem Hitzemelder verwendet werden kann.
Benötigte Komponenten
Für dieses Projekt benötigen wir die folgenden Komponenten.
Schaltplan
Experimentelle Verfahren
Schritt 1: Bauen Sie den Schaltkreis auf.
Schritt 2: Wechseln Sie in den Ordner des Codes.
cd ~/davinci-kit-for-raspberry-pi/python-pi5
Schritt 3: Führen Sie die ausführbare Datei aus.
sudo python3 2.2.2_Thermistor_zero.py
Wenn der Code ausgeführt wird, erkennt der Thermistor die Umgebungstemperatur, die auf dem Bildschirm angezeigt wird, sobald das Programm die Berechnung abschließt.
Warnung
Wenn die Fehlermeldung RuntimeError: Cannot determine SOC peripheral base address angezeigt wird, lesen Sie bitte Wenn gpiozero nicht funktioniert.
Code
Bemerkung
Sie können den unten stehenden Code Modifizieren/Zurücksetzen/Kopieren/Ausführen/Stoppen. Aber bevor Sie das tun, müssen Sie zum Quellcode-Pfad wie davinci-kit-for-raspberry-pi/python-pi5 gehen. Nachdem Sie den Code geändert haben, können Sie ihn direkt ausführen, um die Auswirkungen zu sehen.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import ADC0834
import time
import math
# Richten Sie das ADC0834-Modul ein
ADC0834.setup()
# Führen Sie den Prozess in einem try-except-Block aus
try:
while True:
# Lesen Sie den analogen Wert vom Sensor
analogVal = ADC0834.getResult()
# Wandeln Sie den analogen Wert in eine Spannung um
Vr = 5 * float(analogVal) / 255
# Berechnen Sie den Widerstand des Thermistors
Rt = 10000 * Vr / (5 - Vr)
# Berechnen Sie die Temperatur in Kelvin
temp = 1 / (((math.log(Rt / 10000)) / 3950) + (1 / (273.15 + 25)))
# Wandeln Sie Kelvin in Celsius um
Cel = temp - 273.15
# Wandeln Sie Celsius in Fahrenheit um
Fah = Cel * 1.8 + 32
# Drucken Sie die Temperatur in Celsius und Fahrenheit aus
print('Celsius: %.2f C Fahrenheit: %.2f F' % (Cel, Fah))
# Warten Sie 0,2 Sekunden vor dem nächsten Lesen
time.sleep(0.2)
# Behandeln Sie KeyboardInterrupt für einen eleganten Abschluss
except KeyboardInterrupt:
# Ressourcen des ADC0834 aufräumen
ADC0834.destroy()
Code-Erklärung
Dieser Abschnitt importiert die ADC0834-Bibliothek für die Analog-Digital-Umwandlung, die time-Bibliothek für die Implementierung von Verzögerungen und die math-Bibliothek für mathematische Operationen.
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import ADC0834 import time import math
Initialisiert das ADC0834-Modul, um das Lesen von Analogwerten zu ermöglichen.
# Richten Sie das ADC0834-Modul ein ADC0834.setup()
Implementiert eine Endlosschleife für kontinuierliche Datenablesung. Die Schleife liest den Analogwert von einem Thermistor, wandelt diesen Wert in eine Spannung um, berechnet den Widerstand des Thermistors und übersetzt diesen Widerstand in Temperaturmessungen in Kelvin, Celsius und Fahrenheit. Sie gibt auch die Temperaturwerte in Celsius und Fahrenheit aus und legt eine Pause von 0,2 Sekunden zwischen jeder Ablesung ein.
# Führen Sie den Prozess in einem try-except-Block aus try: while True: # Lesen Sie den analogen Wert vom Sensor analogVal = ADC0834.getResult() # Wandeln Sie den analogen Wert in eine Spannung um Vr = 5 * float(analogVal) / 255 # Berechnen Sie den Widerstand des Thermistors Rt = 10000 * Vr / (5 - Vr) # Berechnen Sie die Temperatur in Kelvin temp = 1 / (((math.log(Rt / 10000)) / 3950) + (1 / (273.15 + 25))) # Wandeln Sie Kelvin in Celsius um Cel = temp - 273.15 # Wandeln Sie Celsius in Fahrenheit um Fah = Cel * 1.8 + 32 # Drucken Sie die Temperatur in Celsius und Fahrenheit aus print('Celsius: %.2f C Fahrenheit: %.2f F' % (Cel, Fah)) # Warten Sie 0,2 Sekunden vor dem nächsten Lesen time.sleep(0.2)
Fängt eine KeyboardInterrupt-Ausnahme ab, um das Programm elegant zu beenden, und enthält Anweisungen zur Bereinigung der ADC0834-Ressourcen bei Beendigung.
# Behandeln Sie KeyboardInterrupt für einen eleganten Abschluss except KeyboardInterrupt: # Ressourcen des ADC0834 aufräumen ADC0834.destroy()