3.9. Kytkimet ja vetovastukset¶
GPIO-lähtö ohjaa ulkoista laitteistoa. GPIO-tulo on päinvastainen: kamera lukee nastan jännitteen ja raportoi sen arvona 0 tai 1. Yksinkertaisin tulolaite on kytkin – ja sen tekeminen luotettavasti luettavaksi vaatii yhden elektroniikkakomponentin itse kytkimen lisäksi.
3.9.1. Kytkimet ja kelluvat tulot¶
Kytkin on mekaaninen kosketin: kaksi metallikappaletta, jotka koskettavat toisiaan kytkimen ollessa kiinni ja erkanevat sen ollessa auki. Sähköisesti tämä on koko laite. Sisällä ei ole jännitelähdettä; kytkin yksinään tarjoaa vain tilan ”kytketty” tai ”ei kytketty”.
Kytkimen johdottaminen suoraan GPIO-nastan ja maan väliin tarkoittaa, että nasta on:
0 V:ssä, kun kytkin on kiinni (nyt johdotettu maahan).
Kelluva, kun kytkin on auki (johdotettu ei mihinkään).
Kelluvalla nastalla ei ole määriteltyä jännitettä. Tulo lukee mitä tahansa sen lähellä sattuu olemaan – ylikuulumista läheisistä signaaleista, kohinaa syötöstä, jopa staattista sähköä johdon lähellä olevasta sormesta. value() palauttaa ennustamattomia sekoituksia arvoista 0 ja 1 monta kertaa sekunnissa.
3.9.2. Ylös- ja alasvetovastukset¶
Korjaus on vetovastus: suuriarvoinen vastus (10 kΩ:sta 100 kΩ:iin on tyypillistä), joka sitoo tulon tunnettuun kiskoon, kun kytkin on auki.
Ylösveto- (vasen) ja alasvetokokoonpanot (oikea) kytkimen tulolle.¶
Ylösveto. Vastus sitoo tulon syöttökiskoon. Kun kytkin on auki, vastuksen läpi kulkee vain pieni virta ja nasta lukee korkean. Kun kytkin on kiinni, se oikosulkee nastan maahan; nasta lukee matalan. Vastus rajoittaa virtaa, joka muutoin virtaisi syötöstä maahan suljetun kytkimen läpi.
Alasveto. Peilikuva: vastus sitoo tulon maahan, ja kytkin kytkeytyy syöttöön. Auki lukee matalan, kiinni lukee korkean.
Ylösveto on yleisempi käytäntö – ”aktiivinen matala” -painikkeet. MCU itse tarjoaa sisäänrakennetut ylös- ja alasvetovastukset, jotka voidaan ottaa käyttöön asetuksella Pin.PULL_UP tai Pin.PULL_DOWN, jolloin ulkoinen vastus jää kokonaan pois.