GPIO: code verbinden met knoppen en lampjes
GPIO betekent General Purpose Input/Output: algemene in- en uitvoer. Een pin als ingang leest een elektrisch niveau; een uitgang stelt er één in. Raspberry Pi-GPIO gebruikt 3,3-voltlogica. Zie de GPIO-uitleg van Raspberry Pi (Engels).
De connector heeft ook voedings- en aardepinnen, die je niet kunt verwisselen met programmeerbare GPIO. Bekijk het officiële GPIO-overzicht (Engels).
Van een signaal naar een beslissing
Pliro stelt digitale pinniveaus voor als Boolean-waarden: waar of onwaar. De bedrading van een knop bepaalt of ingedrukt hoog of laag betekent. Je programma moet de afspraak gebruiken van het onderdeel dat het uitleest.
| Idee | Pliro-bewerking | Voorbeeld |
|---|---|---|
| Een uitgang instellen | pinUitgang(pin) |
Een pin voorbereiden op een ledsignaal. |
| Een ingang instellen | pinIngang(pin) |
Een pin voorbereiden op een knopsignaal. |
| Een uitgangsniveau kiezen | schrijfPin(pin, waarde) |
Hoog instellen met waar. |
| Een logisch niveau lezen | leesPin(pin) |
Een ingang gebruiken in een als-voorwaarde. |
Stel elke pin vóór gebruik in. Schrijven vereist een uitgang en een Boolean. Een uitgang lezen geeft de laatst succesvol geschreven waarde; een ingang lezen geeft het huidige logische niveau. Pliro accepteert gehele BCM-pinnummers van 0 tot en met 27.
Oefenen zonder draden
Voer dit uit in de IDE en bekijk virtuele BCM 17 in de hardwarewerkbank:
# taal: nl
laat ledPin = 17
pinUitgang(ledPin)
schrijfPin(ledPin, waar)
wacht(1)
schrijfPin(ledPin, onwaar)
zeg leesPin(ledPin)
De uitgang wordt één seconde hoog en daarna laag. De console toont false, de tekstweergave van de Boolean-waarde onwaar. Maak de wachttijd eens twee seconden.
Interpreter- en browsersessies gebruiken virtuele pinnen. Een ingang begint als onwaar, tenzij een uitvoeromgeving, zoals het virtuele onderdeel in de IDE, een waarde levert. Deze code in de IDE uitvoeren bedient geen fysieke Pi.
Een geëxporteerde applicatie voor een expliciet Raspberry Pi-doel gebruikt het Linux-GPIO-apparaat wanneer je haar op die Pi uitvoert. Ontbrekende apparaattoegang wordt als uitvoerfout gemeld.
Zoek de aansluiting bij de naam
BCM-nummering benoemt het GPIO-signaal, niet de plek op de connector. Op de standaardconnector met 40 pinnen is BCM 17 fysieke pin 11. Volg het schema van jouw bord. Gebruik een weerstand bij een led, zet nooit 5 V op een GPIO-ingang en gebruik een geschikte driver in plaats van een motor rechtstreeks aan te sluiten. Zie de aansluitrichtlijnen van de fabrikant (Engels).
Een digitale sensor geeft een ja-of-nee-antwoord
Een drempelsensor in Pliro’s werkbank kan aangeven of een waarde een gekozen grens passeert. leesPin geeft nog steeds een Boolean, geen temperatuur of doorlopend veranderende spanning. Denk aan “boven de grens?” in plaats van “hoeveel graden?”