Siewka · Surowe notatki i pierwsze wyniki
Zakłócenia od pompy na wejściu GPIO Raspberry Pi
Pompę Grundfos MQ3-45 w piwnicy włączam z Raspberry Pi, żeby nie schodzić tam przed każdym podlewaniem ogrodu (włączona na stałe być nie może, bo co jakiś czas hałasuje). Pi steruje nią przez typowy moduł przekaźników do Arduino z transoptorem: zasilanie 5 V, sygnał 3,3 V z GPIO. To działało bez zarzutu.
Kłopot zaczął się, gdy dołożyłem wejście wyprowadzone na zewnątrz ekranowaną skrętką. Docelowo miał tam trafić kontaktronowy czujnik opadów, na początek był to przycisk zwierający do masy, z rezystorem podciągającym 4,7 kΩ.
Objaw
Wystarczyło wpiąć wtyczkę pompy do tego samego gniazdka co zasilacz Raspberry Pi, żeby na wejściu pojawił się stan niski. Silnik pompy nawet nie ruszał – zapalały się tylko diody na jej panelu. Wyjmując i wkładając wtyczkę, mogłem wywoływać przerwania na zawołanie.

Podejrzewałem przekaźniki, więc je odpiąłem – bez zmian. Zasilanie Pi z UPS-a pomogło, ale nie do końca.
Co doradzono na forum
Długi przewód wychodzący poza Pi zbiera zakłócenia, a wejście GPIO jest z nim połączone galwanicznie. Rozwiązaniem jest izolacja:
- Transoptor przy Raspberry Pi, w miejscu przycisku: kolektor do GPIO (z rezystorem podciągającym), emiter do masy.
- Diodę transoptora zasilać przez długi przewód i przycisk, z rezystorem, z osobnego źródła zasilania.
- Kondensator 100 nF równolegle do diody transoptora.
- Programowy filtr dolnoprzepustowy (debounce) na wejściu.
- Porządne filtrowanie zasilania samego Pi.
Ta zasada dotyczy każdego wejścia i wyjścia, które wychodzi poza obudowę Pi.
Status
To stara notatka z 2016 roku i nie zapisałem, czy transoptor ostatecznie rozwiązał sprawę – dlatego to kiełek. Temat zakłóceń wrócił przy sterowaniu piecami, gdzie z podobnych powodów zrezygnowałem z RS485/Modbus na rzecz wyjść przekaźnikowych.
Źródło: mój wątek na elektroda.pl – Pompa Grundfos sieje zakłóceniami i powoduje stan niski na GPIO Raspberry (czerwiec 2016).