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

../_images/mcp3008_and_adc0834.jpg

Abhängig von Ihrer Kit-Version identifizieren Sie bitte, ob Sie ADC0834 oder MCP3008 haben, und fahren Sie mit dem entsprechenden Abschnitt fort.

Einführung

Genauso wie ein Fotowiderstand Licht erfassen kann, ist ein Thermistor ein temperaturempfindliches elektronisches Bauelement, das für die Realisierung von Temperaturregelungsfunktionen eingesetzt werden kann, beispielsweise um einen Hitzewarnmelder zu bauen.

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Bauteile.

../_images/list_2.2.2_thermistor.png

Es ist definitiv praktisch, ein gesamtes Kit zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

Raphael Kit

337

Raphael Kit

Sie können diese auch einzeln über die untenstehenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

GPIO Extension Board

KAUFEN

Steckbrett

KAUFEN

Jumper-Kabel

KAUFEN

Widerstand

KAUFEN

Thermistor

KAUFEN

ADC0834

-

Schaltplan

../_images/image323.png ../_images/image324.png

Experimentelle Verfahren

Schritt 1: Bauen Sie den Schaltkreis.

../_images/image202.png

Schritt 2: Navigieren Sie zum Ordner des Codes.

cd ~/raphael-kit/nodejs/

Schritt 3: Führen Sie den Code aus.

sudo node thermistor.js

Wenn der Code ausgeführt wird, erfasst der Thermistor die Umgebungstemperatur, die auf dem Bildschirm angezeigt wird, sobald die Programmberechnung abgeschlossen ist.

Code

const Gpio = require('pigpio').Gpio;
const ADC0834 = require('./adc0834.js').ADC0834;

exports.ADC0834 = ADC0834;

const adc = new ADC0834(17, 18, 27);

setInterval(() => {
  adc.read(0).then((value) => {
    var Vr = 5 * value / 255;
    var Rt = 10000 * Vr / (5 - Vr);
    var temp = 1 / ((Math.log(Rt/10000) / 3950)+(1 / (273.15 + 25)));
    var cel = (temp - 273.15).toFixed(2);
    var Fah = (cel * 1.8 + 32).toFixed(2);
    console.log(`Celsius: ${cel} C  Fahrenheit: ${Fah} F\n`);
  }, (error)=>{
    console.log("Error: " + error);
  });
}, 1000);

Code-Erklärung

setInterval(() => {
  adc.read(0).then((value) => {
    var Vr = 5 * value / 255;
    var Rt = 10000 * Vr / (5 - Vr);
    var temp = 1 / ((Math.log(Rt/10000) / 3950)+(1 / (273.15 + 25)));
    var cel = (temp - 273.15).toFixed(2);
    var Fah = (cel * 1.8 + 32).toFixed(2);
    console.log(`Celsius: ${cel} C  Fahrenheit: ${Fah} F\n`);
  }, (error)=>{
    console.log("Error: " + error);
  });
}, 1000);

Wir können den Wert des Thermistors mit der Anweisung adc.read(0).then((value) => {...}) auslesen.

var Vr = 5 * value / 255;
var Rt = 10000 * Vr / (5 - Vr);
var temp = 1 / ((Math.log(Rt/10000) / 3950)+(1 / (273.15 + 25)));
var cel = (temp - 273.15).toFixed(2);
var Fah = (cel * 1.8 + 32).toFixed(2);
console.log(`Celsius: ${cel} C  Fahrenheit: ${Fah} F\n`);

Diese Operationen konvertieren den Thermistorwert in einen Celsius-Temperaturwert.

var Vr = 5 * value / 255;
var Rt = 10000 * Vr / (5 - Vr);

Diese beiden Codezeilen dienen dazu, die Spannungsverteilung aus den gelesenen Werten zu berechnen, was in Rt (Widerstand des Thermistors) resultiert.

var temp = 1 / ((Math.log(Rt/10000) / 3950)+(1 / (273.15 + 25)));

Dieser Code bezieht sich darauf, Rt in die Formel TK=1/(ln(RT/RN)/B+1/TN) einzusetzen, um die Temperatur in Kelvin zu erhalten.

var cel = (temp - 273.15).toFixed(2);

Dieser Abschnitt konvertiert die Kelvin-Temperatur in Celsius mit zwei Dezimalstellen.

var Fah = (cel * 1.8 + 32).toFixed(2);

Dieser Abschnitt konvertiert Celsius in Fahrenheit mit zwei Dezimalstellen.

console.log(`Celsius: ${cel} C  Fahrenheit: ${Fah} F\n`);

Gibt Celsius, Fahrenheit und ihre Einheiten im Terminal aus.

Phänomen-Bild

../_images/image203.jpeg