3.9. Spínače a pull rezistory¶
Výstup GPIO řídí externí hardware. Vstup GPIO je opakem: kamera čte napětí na pinu a hlásí jej jako 0 nebo 1. Nejjednodušším vstupním zařízením je spínač – a aby byl spolehlivě čitelný, je kromě samotného spínače potřeba jeden kus elektroniky.
3.9.1. Spínače a plovoucí vstupy¶
Spínač je mechanický kontakt: dva kusy kovu, které se při sepnutí dotýkají a při rozepnutí oddělí. Elektricky je to celé zařízení. Uvnitř není žádný zdroj napětí; samotný spínač poskytuje pouze „spojeno“ nebo „rozpojeno“.
Zapojení spínače přímo mezi pin GPIO a zem znamená, že pin je:
Na 0 V, když je spínač sepnutý (nyní zapojený k zemi).
Plovoucí, když je spínač rozepnutý (nezapojený nikam).
Plovoucí pin nemá definované napětí. Vstup čte cokoli, co se kolem něj náhodou vyskytuje – přeslechy z blízkých signálů, šum z napájení, dokonce i statickou elektřinu z prstu blízko vodiče. value() vrací nepředvídatelné směsi 0 a 1 mnohokrát za sekundu.
3.9.2. Pull-up a pull-down rezistory¶
Řešením je pull rezistor: rezistor s vysokou hodnotou (typicky 10 kΩ až 100 kΩ), který připojí vstup ke známé sběrnici, když je spínač rozepnutý.
Konfigurace pull-up (vlevo) a pull-down (vpravo) pro vstup spínače.¶
Pull-up. Rezistor připojuje vstup k napájecí sběrnici. Když je spínač rozepnutý, rezistorem protéká jen malý proud a pin čte vysoko. Když je spínač sepnutý, zkratuje pin k zemi; pin čte nízko. Rezistor omezuje proud, který by jinak tekl z napájení k zemi přes sepnutý spínač.
Pull-down. Zrcadlový obraz: rezistor připojuje vstup k zemi a spínač se připojuje k napájení. Rozepnuto čte nízko, sepnuto vysoko.
Pull-up je častější konvence – tlačítka „aktivní v nule“. Samotný MCU poskytuje vestavěné pull-up a pull-down rezistory, které lze povolit pomocí Pin.PULL_UP nebo Pin.PULL_DOWN, čímž externí rezistor zcela odpadá.