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.

Kaksi kytkentäkaaviota vierekkäin. Vasemmalla: ylösveto- kytkentä, jossa on vastus tulonastasta ylös syöttöön ja kytkin tulonastasta alas maahan (GND). Oikealla: alasvetokytkentä, jossa on vastus tulo- nastasta alas maahan (GND) ja kytkin tulonastasta ylös syöttöön.

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.