Skip to main content

Kapitel 4 - 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.

    brave_g91aQBfB06.gif

brave_g91aQBfB06.gif

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

  1. Testen: Stecke den Sensor in trockene Erde und beobachte den Wert im seriellen Monitor.
  2. Vergleichen: Gieße etwas Wasser dazu und sieh dir an, wie sich die Werte ändern.
  3. Anpassen: Verändere die Schwellwerte (200, 400, 600, 800), bis die Anzeige gut zu deiner Erde passt.
  4. Bonus: Gib bei sehr trockener Erde zusätzlich im seriellen Monitor eine Warnung aus, z. B.:
    Serial.println("⚠️ Bitte gießen!");