Moin
ich hab eine einfache Wasserstandssteuerung in Betrieb. Läuft seit Jahren problemlos. Ein Schwimmerschalter schaltet mir den GPIO 0 zu GND durch wenn der Pegel zu niedrig ist. Damit schaltet sich ein Relais an, lässt eine Pumpe laufen und nach ein paar Sekunden macht der Schwimmerschalter wieder zu. Das war nie ein Thema, ging immer. In der /boot/config steht der Pin mit Pullup drin.
Per bash frag ich den Zustand ab
#!/bin/bash
gpio mode 0 in
gpio mode 4 out
while true
do
result="$( gpio read 0 )"
if [ "$result" = "0" ]; then
gpio write 4 1
#echo "taste aus"
fi
if [ "$result" = "1" ]; then
gpio write 4 0
#echo "taste ein `date +_%Y_%m_%d_%H-%M`"
fi
sleep 0.5
done
Display More
Geht GPIO 0 auf 1 wird über GPIO das Relaisboard angesteuert. Eigentlich nicht dramatisch.
Jetzt fing es die letzten Tage an das ich das Relaisboard klicken hoerte. Dachte der Schwimmerschalter hat evtl. einen Wackelkontakt o. ä.
Durchgemessen, der ist absolut in Ordnung und schaltet zuverlässig. Alles wieder angeschlossen und ein kleines Terminalprogramm zum Auslesen des Pins alle paar ms gestartet.
Schaltet der Schwimmerschalter geht der GPIO auf 1 und springt sofort wieder auf 0, also low. Dann wieder auf 1 und wieder auf 0. Klingt am Relais wie der Blinker im Auto.
Manchmal auch verzoegert oder nur ein paar mal hintereinander...also nicht wirklich reproduzierbar. Jedesmal anders...
Nachdem ich dann den Mittag damit verbracht hab alle moeglichen Tutorials und Forumbeiträge zu lesen über das Thema bin ich kein Stück schlauer.
Der Pi hat eine eigene Stromversorgung, schließe ich den Schwimmerschalter an GPIO 0 und an irgendeinen GND Pin der GPIO Leiste an schaltet PIN 0 nie auf high! Er will einfach nicht. Echt schräg!
Schließe ich den PIN der auf GND gehen sollte an das zweite 5V Netzteil an was ich dort auch noch verbaut habe dann schaltet der PIN 0 auf high. Das kann ich mir auch nicht erklären wieso es über den Weg geht, aber die internen Pins nicht.
Ich werd jetzt mal umbauen und den Schalter auf hardware Pullup, also 3.3v über10K Widerstand am GPIO0 zusätzlich und den PU softwareseitig aus der boot config rausnehmen. Habt ihr noch eine Idee?
Mir fällt nichts mehr ein sonst.
Den Pi hab ich heute morgen schon getauscht, daran lags wohl nicht. Gleiches Verhalten.