Sensoren mit Arduino (eBook)
256 Seiten
MITP Verlags GmbH & Co. KG
978-3-7475-0828-2 (ISBN)
Dieses Buch bietet einen praktischen Einstieg in die faszinierende Welt der Sensoren, die zusammen mit dem Arduino UNO R4 eingesetzt werden können: Temperatur-, Umweltsensoren, Infrarot- und Ultraschall-Sensoren, LEDs, OLEDs u.v.m. So kann der Arduino auf seine Umgebung reagieren und zahlreiche Werte erfassen, die vom Arduino-Board weiterverarbeitet und dargestellt werden können.
Die vielen Beispielprojekte richten sich an Einsteiger, die bereits etwas Erfahrung mit dem Arduino-Board gesammelt haben und nun neue Anwendungen realisieren wollen.
Thomas Brühlmann zeigt Ihnen zahlreiche Sensoren und Beispielanwendungen zum Messen, Erfassen und Verarbeiten von Daten - detailliert mit Stückliste, Steckbrettaufbau und Beispielcode - zu den Themen Mensch & Umwelt sowie Haus & Hof. Beispiele sind Infrarot-Fernbedienung, Fensterkontakt, Bewegungsalarm sowie ein universelles Sensor-Board als LoRa-Sender und -Empfänger. Mit dem Arduino UNO R4 WIFI können Webanwendungen wie Webclient und Webserver realisiert werden.
Mit dem Wissen aus diesem Praxis-Handbuch können Sie Ihre eigenen Ideen kreativ umsetzen.
Projekte aus dem Buch:- Nachtlampe mit LDR
- Lux-Meter
- UV-Index-Monitor
- Abstandsmesser für Garage
- Garagentor-Wächter
- Süßigkeitenschrank-Wächter
- Waage für die Werkstatt
- Digitaler Kompass mit LED-Anzeige
- Alkohol-Messgerät
- Fensterkontakt überwachen
- LoRa-Sender und -Empfänger mit RFM95-Transceiver
- Datenlogger
- Bargraph-Display mit OLED
Thomas Brühlmann arbeitet als Consultant. Nebenbei realisiert er Elektronik-Projekte, hält Vorträge und führt Workshops durch. In seinem Blog unter 555circuitslab.com publiziert er Projekte, Tipps und Tricks.
Kapitel 2
Warm & kalt
Das Erfassen von warm und kalt mittels Temperaturmessungen gehört zu den alltäglichen Aufgaben von Geräten, die wir im Haushalt oder Büro verwenden. Die Funk-Wetterstation zeigt die Außentemperatur an. Der Backofen zeigt die Backtemperatur und unsere Smartphones liefern Wetterinformationen, die von Wetterstationen gemessen wurden.
Sensoren für die Temperaturmessung sind recht günstige Bauteile und eignen sich ideal für die Erfassung der Umwelt mittels Arduino-Board.
2.1Temperatursensor NTC (Thermistor)
Thermistoren sind einfache Temperatursensoren, die ihren Widerstandswert abhängig von der Temperatur verändern. Der Begriff NTC bedeutet Negative Temperature Coefficient, was darauf hindeutet, dass dieser Sensor einen negativen Temperaturkoeffizienten besitzt. In der Praxis heißt das, dass bei Kälte der Widerstandswert hoch ist und bei Wärme niedrig. Die Widerstandsänderung ist also genau umgekehrt zur Temperaturänderung.
Diese Widerstandstemperaturen werden darum oft einfach als NTC-Sensor oder Heißleiter bezeichnet. Neben dem NTC gibt es auch einen PTC-Thermistor. Bei PTC ist der Temperaturkoeffizient positiv. Der Widerstandswert vergrößert sich bei Wärme.
NTC-Thermistoren sind günstige Temperatursensoren und werden mit verschiedenen Widerstandswerten und in unterschiedlichen Bauformen geliefert. Der im Datenblatt angegebene Widerstandswert ist immer der Wert bei 25 Grad Celsius. Die NTC-Sensoren eignen sich für Temperaturmessungen im Bereich von -50 bis 200 Grad Celsius.
In Abbildung 2.1 sind verschiedene Bauformen von NTC-Sensoren zu sehen.
Abb. 2.1: NTC-Thermistoren (Bild: guilcor.de)
2.1.1Praxisbeispiel: Temperaturmessung mit NTC
Für die Temperaturmessung mit einem NTC wird nur noch ein zusätzlicher Widerstand benötigt. In Abbildung 2.2 ist der Schaltungsaufbau auf dem Steckbrett dargestellt.
Abb. 2.2: Temperaturmessung mit NTC – Steckbrettaufbau
Der NTC wird zusammen mit dem Widerstand in einer Spannungsteiler-Schaltung eingesetzt. Die am Widerstand gemessene, analoge Spannung wird über die orange Signalleitung auf den analogen Eingang A0 des Arduino UNO geführt.
Stückliste (NTC-Thermistor)
- 1 Arduino UNO
- 1 Steckbrett
- 1 NTC 10 kOhm
- 1 Widerstand 10 kOhm
- Jumper-Wire
Aus dem Analogwert an A0 kann mittels einer komplexen Berechnungsformel die aktuelle Temperatur ermittelt werden. Die Berechnung wird als sogenannte Steinhart-Hart-Gleichung bezeichnet.
Für die Berechnung wird die Mathematik-Bibliothek math.h benötigt und ins Programm (arduino-sensoren-2_kap2-ntc.ino) eingebunden.
#include <math.h>Die Berechnung benötigt den Widerstandswert des NTC bei 25 Grad C.
// Widerstandswert bei 25 Grad Cint Wid25Grad= 10000;
Nun werden die Variablen für den analogen Eingang und die Temperatur deklariert. Der analoge Messwert wird an A0 eingelesen.
// analoger Messwertint valTemp;
// analoger Eingang
int TempPin = 0;
// Wert Temp in Celsius
float tempC;
Im Setup wir die serielle Schnittstelle für die Ausgabe vorbereitet.
void setup(){
// Start serielle Ausgabe
Serial.begin(115200);
}
Das Hauptprogramm liest laufend den analogen Wert an A0 ein, speichert ihn in der Variablen valTemp und übergibt den gemessenen Wert anschließend an die Funktion ThermistorC(valTemp).
void loop(){
valTemp = analogRead(TempPin);
tempC = ThermistorC(valTemp);
Serial.print("Temperatur: ");
Serial.print(tempC);
Serial.println(" C");
// Warten 1 Sekunde
delay(1000);
}
Die Umrechnungsfunktion ThermistorC(valTemp) rechnet den Wert in eine absolute Temperatur um und gibt diese in Grad Celsius zurück.
Zum Test wird nun der Temperaturwert seriell ausgegeben.
Listing 2.1 zeigt das komplette Programm für die Temperaturmessung mit einem NTC (arduino-sensoren-2_kap2-ntc.ino).
#include <math.h>// Widerstandswert bei 25 Grad C
int Wid25Grad= 10000;
// analoger Messwert
int valTemp;
// analoger Eingang
int TempPin = 0;
// Wert Temp in Celsius
float tempC;
void setup()
{
// Start serielle Ausgabe
Serial.begin(115200);
}
void loop()
{
valTemp = analogRead(TempPin);
tempC = ThermistorC(valTemp);
Serial.print("Temperatur: ");
Serial.print(tempC);
Serial.println(" C");
// Warten 1 Sekunde
delay(1000);
}
double ThermistorC(int RawADC)
{
double Temp;
Temp = log(((10240000/RawADC) - Wid25Grad));
Temp = 1 / (0.001129148 + (0.000234125 * Temp) + (0.0000000876741 * Temp * Temp * Temp));
// Umrechnung Kelvin / Grad Celsius
Temp = Temp - 273.15;
return Temp;
}
Listing 2.1: Temperaturmessung mit NTC
Anwendungsbeispiele
- Einfache Raumtemperaturmessung
- Temperaturmessung im Aquarium
- Aquariumwächter
2.2Analoger Temperatursensor LM35
Der Temperatursensor LM35 ist ein kompakter Sensor und liefert als Ausgangssignal eine lineare Ausgangsspannung von 10 Millivolt (mV) pro Grad Celsius. Bei 25 Grad Celsius liefert der Sensor somit eine Spannung von 250 Millivolt, die direkt über einen analogen Eingang des Arduino eingelesen werden kann.
Für Temperaturmessungen im Bereich von 0 bis 100 Grad sind keine zusätzlichen Bauteile nötig. Der Sensor wird mit einer Spannung im Bereich von 4 bis 30 Volt versorgt. An seinem analogen Ausgang kann direkt die gemessene Spannung ausgelesen werden.
Der analoge Temperatursensor LM35 kann somit auch für Anwendungen ohne Microcontroller eingesetzt werden, da er keine Linearisierung mittels Berechnungsformel oder Elektronik-Schaltung benötigt.
In Abbildung 2.3 ist ein LM35 mit der Anschlussbelegung im Gehäuse TO-92 dargestellt.
Abb. 2.3: Temperatursensor LM35 (Auszug Datenblatt Texas Instruments)
2.2.1Praxisbeispiel: Raumtemperaturmessung mit LM35
Ohne externe Beschaltung kann der Temperatursensor LM35 für die Erfassung der Raumtemperatur eingesetzt werden.
Abbildung 2.4 zeigt den Steckbrettaufbau für die Messung der Raumtemperatur.
Abb. 2.4: Temperaturmessung mit LM35 – Steckbrettaufbau
Stückliste (Temperaturmessung LM35)
- 1 Arduino UNO
- 1 Steckbrett
- 1 Temperatursensor LM35 (Gehäuse TO-92)
- Jumper-Wire
In Listing 2.2 ist der Programmcode (arduino-sensoren-2_kap2-lm35.ino) für die Temperatur-Messung mit dem LM35 abgebildet.
// Temperaturmessung mit Temperatursensor LM35// Datei: arduino-sensoren-2_kap2-lm35.ino
float valTemp;
// Analogeingang A0
int tempPin = 0;
float tempC;
float tempCmV;
void setup()
{
// Serielle Schnittstelle initialisieren
Serial.begin(9600);
}
void loop()
{
// Analogport einlesen
valTemp = analogRead(tempPin);
// Wert umkonvertieren,
tempCmV = (5000* valTemp)/1023.0;
tempC = tempCmV/10;
delay(500);
// Wert an serielle Schnittstelle senden
// Ausgabe als Grad Celsius
Serial.print("Grad C: ");
Serial.println(tempC);
// Messwert auf 0 setzen
tempC=0;
// warten 1 Sekunde
delay(1000);
}
Listing 2.2: Temperaturmessung mit LM35
Im Hauptprogramm wird nun am analogen Eingang das Mess-Signal des LM35 eingelesen.
Der Maximalwert des internen Analog/Digital-Wandlers von 1023 entspricht dabei der internen Referenzspannung von 5 V, also 5000 Millivolt.
Die Spannung in Millivolt der aktuellen Temperatur wird in der Variablen tempCmV gespeichert.
tempCmV = (5000* valTemp)/1023.0;Um den Temperaturwert in Grad Celsius zu erhalten, wird anschließend der Wert tempCmV durch 10 dividiert, da bekanntlich 1 Grad Celsius 10 mV entspricht.
tempC = tempCmV/10;Ein Messwert von 400 mV entspricht somit einer Temperatur von 40 Grad Celsius.
400 mV / 10mV pro Grad = 40 Grad
| Bei Temperaturen in feuchter Umgebung, wie beispielsweise in einem Terrarium, kann der Sensor durch einen Schrumpfschlauch geschützt werden. |
Anwendungsmöglichkeiten
- Raummessung mit Analog-Anzeige
- Raummessung mit Digital-Anzeige und Alarmausgang
- Überwachungssensor in Geräten wie Netzteil oder ähnlich
- Überwachungssensor im Aquarium (Sensor in Schrumpfschlauch oder Plastikrohr verpackt)
2.3Auswahl eines Temperatursensors
Alle in diesem Kapitel vorgestellten Temperatursensoren können für die Messung der...
Erscheint lt. Verlag | 17.6.2024 |
---|---|
Sprache | deutsch |
Themenwelt | Mathematik / Informatik ► Informatik |
ISBN-10 | 3-7475-0828-6 / 3747508286 |
ISBN-13 | 978-3-7475-0828-2 / 9783747508282 |
Haben Sie eine Frage zum Produkt? |
Größe: 9,9 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegeräte ist EPUB daher gut geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich