Kapitel 5 - Sensoren (Feuchtigkeitssensor)
Ziel:
- Du lernst, wie man mit einem Bodenfeuchtigkeitssensor misst, ob Erde trocken oder nass ist.
- Mehrere LEDs zeigen an, wie viel Wasser im Boden ist.
Schaltung
- Sensor anschließen
- VCC → 5V
- GND → GND
- A0 → Pin A0 (als "Power-Schaltung")
- A1 → Pin A1 (Messwert)
- LEDs mit Vorwiderstand
-
Tipp: Der Sensor bekommt nur kurz Strom über A0, damit er nicht so schnell korrodiert.
Startercode
int moisture = 0;
void setup() {
pinMode(A0, OUTPUT); // Versorgung für Sensor
pinMode(A1, INPUT); // Sensorwert auslesen
Serial.begin(9600); // Werte im Seriellen Monitor
// LEDs
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
}
void loop() {
// Sensor kurz mit Spannung versorgen
digitalWrite(A0, HIGH);
delay(10);
// Wert auslesen
moisture = analogRead(A1);
// Sensor wieder ausschalten (gegen Korrosion)
digitalWrite(A0, LOW);
// Wert im Seriellen Monitor anzeigen
Serial.println(moisture);
// Alle LEDs aus
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
// LEDs abhängig von Feuchtigkeit einschalten
if (moisture < 200) {
digitalWrite(12, HIGH); // sehr trocken
} else if (moisture < 400) {
digitalWrite(11, HIGH); // trocken
} else if (moisture < 600) {
digitalWrite(10, HIGH); // feucht
} else if (moisture < 800) {
digitalWrite(9, HIGH); // nass
} else {
digitalWrite(8, HIGH); // sehr nass
}
delay(100);
}
Aufgaben
- Testen: Stecke den Sensor in trockene Erde und beobachte den Wert im seriellen Monitor.
- Vergleichen: Gieße etwas Wasser dazu und sieh dir an, wie sich die Werte ändern.
- Anpassen: Verändere die Schwellwerte (200, 400, 600, 800), bis die Anzeige gut zu deiner Erde passt.
- Bonus: Gib bei sehr trockener Erde zusätzlich im seriellen Monitor eine Warnung aus, z. B.:
Serial.println("⚠️ Bitte gießen!");