Siewka · Surowe notatki i pierwsze wyniki

Zakłócenia od pompy na wejściu GPIO Raspberry Pi

Posadzona Read in English →

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.

Schemat: zasilacz Raspberry Pi i pompa MQ3-45 wpięte do tej samej sieci 230 V; przycisk zwiera GPIO do masy, rezystor podciągający 4,7 kΩ do 3,3 V
Układ podczas testów: przekaźniki odpięte, a pompa i zasilacz Pi wpięte do tego samego gniazdka.

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:

  1. Transoptor przy Raspberry Pi, w miejscu przycisku: kolektor do GPIO (z rezystorem podciągającym), emiter do masy.
  2. Diodę transoptora zasilać przez długi przewód i przycisk, z rezystorem, z osobnego źródła zasilania.
  3. Kondensator 100 nF równolegle do diody transoptora.
  4. Programowy filtr dolnoprzepustowy (debounce) na wejściu.
  5. 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).