3.9. Sklopke i pull otpornici¶
GPIO izlaz upravlja vanjskim hardverom. GPIO ulaz je suprotno: kamera čita napon na pinu i prijavljuje ga kao 0 ili 1. Najjednostavniji ulazni uređaj je sklopka – a da bi je se moglo pouzdano čitati potreban je jedan dio elektronike uz samu sklopku.
3.9.1. Sklopke i lebdeći ulazi¶
Sklopka je mehanički kontakt: dva komada metala koja se dodiruju kada je sklopka zatvorena i razdvajaju kada je otvorena. Električki, to je cijeli uređaj. Unutra nema izvora napona; sama sklopka pruža samo „spojeno” ili „nespojeno”.
Spajanje sklopke izravno između GPIO pina i mase znači da je pin:
Na 0 V kada je sklopka zatvorena (sada spojena na masu).
Lebdeći kada je sklopka otvorena (spojena na ništa).
Lebdeći pin nema definiran napon. Ulaz čita što god se nađe u njegovoj blizini – preslušavanje od obližnjih signala, šum iz napajanja, čak i statiku na prstu blizu žice. value() vraća nepredvidive mješavine 0 i 1 mnogo puta u sekundi.
3.9.2. Pull-up i pull-down otpornici¶
Rješenje je pull otpornik: otpornik visoke vrijednosti (uobičajeno 10 kΩ do 100 kΩ) koji veže ulaz na poznatu sabirnicu kada je sklopka otvorena.
Pull-up (lijevo) i pull-down (desno) konfiguracije za ulaz sklopke.¶
Pull-up. Otpornik veže ulaz na sabirnicu napajanja. Kada je sklopka otvorena, kroz otpornik teče samo mala struja i pin čita visoko. Kada je sklopka zatvorena, ona kratko spaja pin na masu; pin čita nisko. Otpornik ograničava struju koja bi inače tekla od napajanja prema masi kroz zatvorenu sklopku.
Pull-down. Zrcalna slika: otpornik veže ulaz na masu, a sklopka se spaja na napajanje. Otvoreno čita nisko, zatvoreno čita visoko.
Pull-up je uobičajenija konvencija – „aktivno nisko” gumbi. Sam MCU pruža ugrađene pull-up i pull-down otpornike koji se mogu omogućiti s Pin.PULL_UP ili Pin.PULL_DOWN, čime se vanjski otpornik u potpunosti uklanja.