16. Übung: Elektrische Leitfähigkeit messen#

../_images/16-elektrische-leitfaehigkeit-messen.png
 1// Pin Definitionen
 2const int sensorPin = A0;  // Pin, an dem der Feuchtigkeitssensor angeschlossen ist
 3const int greenLedPin = 2; // Pin, an dem die grüne LED angeschlossen ist
 4const int redLedPin = 3;   // Pin, an dem die rote LED angeschlossen ist
 5
 6// Grenzwerte für die Hysterese
 7const int thresholdHigh = 550; // Oberer Grenzwert für Feuchtigkeit
 8const int thresholdLow = 450;  // Unterer Grenzwert für Feuchtigkeit
 9
10// Variablen zur Steuerung der LED-Zustände
11bool isDry = false;
12
13void setup()
14{
15    // Setze die LED Pins als Ausgang
16    pinMode(greenLedPin, OUTPUT);
17    pinMode(redLedPin, OUTPUT);
18
19    // Initialisiere die serielle Kommunikation
20    Serial.begin(9600);
21}
22
23void loop()
24{
25    // Lese den Wert des Feuchtigkeitssensors
26    int sensorValue = analogRead(sensorPin);
27
28    // Gebe den Sensorwert auf der seriellen Schnittstelle aus
29    Serial.print("Feuchtigkeitswert: ");
30    Serial.println(sensorValue);
31
32    // Überprüfe den Feuchtigkeitswert mit Hysterese
33    if (isDry)
34    {
35        // Wenn es trocken ist und der Wert über den unteren Grenzwert steigt
36        if (sensorValue < thresholdLow)
37        {
38            isDry = false;
39        }
40    }
41    else
42    {
43        // Wenn es feucht ist und der Wert unter den oberen Grenzwert fällt
44        if (sensorValue > thresholdHigh)
45        {
46            isDry = true;
47        }
48    }
49
50    // Steuere die LEDs basierend auf dem isDry Zustand
51    if (isDry)
52    {
53        digitalWrite(greenLedPin, LOW);
54        digitalWrite(redLedPin, HIGH);
55    }
56    else
57    {
58        digitalWrite(greenLedPin, HIGH);
59        digitalWrite(redLedPin, LOW);
60    }
61
62    // Kurze Pause, um die Werte nicht zu oft zu lesen
63    delay(500);
64}

Siehe ChatGPT-Chat.