16. Übung: Elektrische Leitfähigkeit messen#
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.