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.