3.9. Przełączniki i rezystory podciągające

Wyjście GPIO steruje zewnętrznym sprzętem. Wejście GPIO jest odwrotnością: kamera odczytuje napięcie na pinie i zgłasza je jako 0 lub 1. Najprostszym urządzeniem wejściowym jest przełącznik – a uczynienie go niezawodnie odczytywalnym wymaga jednego elementu elektronicznego oprócz samego przełącznika.

3.9.1. Przełączniki i wejścia w stanie nieustalonym

Przełącznik to mechaniczny styk: dwa kawałki metalu, które stykają się, gdy przełącznik jest zamknięty, i rozdzielają, gdy jest otwarty. Elektrycznie jest to całe urządzenie. Wewnątrz nie ma źródła napięcia; sam przełącznik zapewnia jedynie stan „połączony” lub „rozłączony”.

Podłączenie przełącznika bezpośrednio między pinem GPIO a masą oznacza, że pin jest:

  • Na 0 V, gdy przełącznik jest zamknięty (teraz połączony z masą).

  • W stanie nieustalonym (floating), gdy przełącznik jest otwarty (połączony z niczym).

Pin w stanie nieustalonym nie ma zdefiniowanego napięcia. Wejście odczytuje cokolwiek akurat znajduje się w jego pobliżu – przesłuch z pobliskich sygnałów, szum z zasilania, a nawet ładunki statyczne z palca trzymanego blisko przewodu. value() zwraca nieprzewidywalne mieszanki 0 i 1 wiele razy na sekundę.

3.9.2. Rezystory podciągające i ściągające

Rozwiązaniem jest rezystor podciągający: rezystor o dużej wartości (typowo od 10 kΩ do 100 kΩ), który wiąże wejście ze znaną szyną, gdy przełącznik jest otwarty.

Dwa schematy obok siebie. Po lewej: układ podciągający z rezystorem od pinu wejściowego w górę do zasilania i przełącznikiem od pinu wejściowego w dół do GND. Po prawej: układ ściągający z rezystorem od pinu wejściowego w dół do GND i przełącznikiem od pinu wejściowego w górę do zasilania.

Konfiguracje podciągająca (po lewej) i ściągająca (po prawej) dla wejścia przełącznika.

  • Podciąganie. Rezystor wiąże wejście z szyną zasilania. Gdy przełącznik jest otwarty, przez rezystor płynie tylko niewielki prąd i pin odczytuje stan wysoki. Gdy przełącznik jest zamknięty, zwiera pin do masy; pin odczytuje stan niski. Rezystor ogranicza prąd, który w przeciwnym razie płynąłby z zasilania do masy przez zamknięty przełącznik.

  • Ściąganie. Lustrzane odbicie: rezystor wiąże wejście z masą, a przełącznik łączy się z zasilaniem. Otwarty odczytuje stan niski, zamknięty stan wysoki.

Podciąganie jest częstszą konwencją – przyciski „aktywne w stanie niskim”. Sam MCU zapewnia wbudowane rezystory podciągające i ściągające, które można włączyć za pomocą Pin.PULL_UP lub Pin.PULL_DOWN, eliminując zewnętrzny rezystor całkowicie.