2 manieren om een ​​knop aan uw Raspberry Pi-project toe te voegen

2 manieren om een ​​knop aan uw Raspberry Pi-project toe te voegen

Als u de GPIO-pinnen op uw Raspberry Pi leert gebruiken, gaat er een hele wereld aan mogelijkheden open. De basisprincipes die door beginnersprojecten zijn geleerd, effenen de weg naar nuttige kennis van zowel doe-het-zelf-elektronica als programmeren.





Deze tutorial laat je twee manieren zien om een ​​knop toe te voegen aan je Raspberry Pi-project. De knop wordt gebruikt om een ​​LED te bedienen. Schriftelijke instructies zijn beschikbaar onder de video.





Je zal nodig hebben

Zorg ervoor dat u over de volgende componenten beschikt om aan de slag te gaan:





  • 1 x Raspberry Pi (alles is voldoende, model 3B wordt gebruikt in deze tutorial)
  • 1 x drukknop
  • 1 x LED
  • 1 x 220 Ohm Weerstand (Hogere waarden zijn prima, je LED wordt alleen maar zwakker)
  • 1 x Breadboard
  • Sluit draden aan

Eenmaal verzameld, zou u componenten moeten hebben die er ongeveer zo uitzien:

Je hebt ook een SD-kaart nodig waarop het Raspbian-besturingssysteem is geïnstalleerd. De snelste manier om dit te doen is met de NOOBS (New Out Of the Box Software) image. Instructies om dit te doen zijn beschikbaar in deze video:



Het circuit opzetten

Je zult de GPIO-pinnen van de Pi gebruiken om het circuit te maken, en als je er niet bekend mee bent, onze gids voor Raspberry Pi GPIO-pinnen zal helpen. Het circuit is hier bijna hetzelfde als in onze vorige Raspberry Pi LED-project , met de toevoeging van de knop die u vandaag gaat gebruiken.

Stel uw circuit in volgens dit diagram:





  • De 5v en GND pinnen verbinden met de stroomrails van het breadboard.
  • Pin 12 (GPIO 18) wordt aangesloten op de positieve poot van de LED.
  • Een been van de weerstand wordt bevestigd aan de negatieve poot van de LED en de andere poot wordt bevestigd aan de grondrail van het breadboard.
  • Pin 16 (GPIO 23) hecht aan de ene kant van de knop, de andere kant aan de grondrail van het breadboard.

Als het eenmaal is ingesteld, ziet het er als volgt uit:

Controleer uw circuit om er zeker van te zijn dat het correct is en schakel vervolgens uw Raspberry Pi in.





Methode 1: De RPi.GPIO-bibliotheek

Zodra de Pi is opgestart, ga je naar het menu en selecteer je Programmeren> Thonny Python IDE . Er wordt een nieuw Python-script geopend. Als Python helemaal nieuw voor je is, is het een geweldige taal voor beginners en er zijn veel geweldige plekken om meer over Python te leren nadat je klaar bent met deze tutorial!

Begin met het importeren van de RPi.GPIO-bibliotheek en het instellen van de bordmodus.

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)

Declareer nu de variabelen voor de LED- en knoppinnummers.

ledPin = 12
buttonPin = 16

Merk op dat aangezien we de bordmodus hebben ingesteld op: BORD we gebruiken de pinnummers in plaats van de GPIO-nummers. Als dat verwarrend voor je is, kan een Raspberry Pi-pinout-diagram helpen om het op te helderen.

De knop instellen

Het is tijd om de GPIO-pinnen in te stellen. Stel de LED-pin in om uit te voeren en de knoppin om in te voeren met een pull-up-weerstand

GPIO.setup(ledPin, GPIO.OUT)
GPIO.setup(buttonPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)

De tekst na GPIO.IN verwijst naar de interne pull-up weerstand van de Raspberry Pi. U moet dit inschakelen om een ​​schone lezing van de knop te krijgen. Omdat de knop naar de aardingspin gaat, hebben we een pull-up-weerstand nodig om de ingangspin HOOG te houden totdat je erop drukt.

Laten we, voordat we verder gaan, kijken naar pull-up- en pull-down-weerstanden.

Pauze: Optrek-/trekweerstanden

Wanneer u een GPIO-pin configureert om in te voeren, leest deze die pin om de status ervan te bepalen. In dit circuit moet je lezen of een pin is HOOG of LAAG om de LED te activeren wanneer de knop wordt ingedrukt. Dit zou eenvoudig zijn als dat de enige toestanden waren die een pin kan hebben, maar helaas is er een derde toestand: DRIJVEND .

Een zwevende pin heeft een waarde tussen hoog en laag, waardoor de ingang onvoorspelbaar werkt. Pull-up/pull-down weerstanden lossen dit op.

De bovenstaande afbeelding is een vereenvoudigd diagram van een knop en een Raspberry Pi. De GPIO-pin wordt via de knop met aarde verbonden. De interne pull-up-weerstand verbindt de GPIO-pin met de interne Pi-voeding. Deze stroom vloeit en de pin wordt veilig naar HOOG getrokken.

Wanneer u op de knop drukt, maakt de GPIO-pin rechtstreeks verbinding met de grondpin en staat de knop laag.

Pull-down weerstanden zijn voor wanneer de schakelaar is aangesloten op de power pin. Deze keer bevestigt de interne weerstand de GPIO-pin aan aarde en houdt hij LOW ingedrukt totdat u op de knop drukt.

Pull-up en Pull-down weerstandstheorie is op het eerste gezicht verwarrend, maar belangrijke kennis om te hebben bij het werken met microcontrollers. Voor nu, maak je geen zorgen als je het niet helemaal begrijpt!

Laten we verder gaan waar we gebleven waren.

De programmalus

Stel vervolgens de programmalus in:

while True:
buttonState = GPIO.input(buttonPin)
if buttonState == False:
GPIO.output(ledPin, GPIO.HIGH)
else:
GPIO.output(ledPin, GPIO.LOW)

De terwijl True loop voert continu de code erin totdat we het programma beëindigen. Elke keer dat het een lus maakt, wordt de knopStatus door de invoer van de te lezen knopPin . Zolang de knop niet wordt ingedrukt, blijft hij HOOG .

Zodra de knop is ingedrukt, knopStatus wordt LAAG . Dit activeert de if-verklaring , sinds niet waar is hetzelfde als LAAG en de LED gaat branden. De anders statement schakelt de LED uit wanneer de buttonPin niet False is.

Uw script opslaan en uitvoeren

Sla je script op door op . te klikken Bestand > Opslaan als en het kiezen van een bestandsnaam. U kunt de schets uitvoeren door op de groene . te klikken Toneelstuk knop in de Thonny-werkbalk.

Druk nu op de knop en je LED zou moeten gaan branden! Druk op de rode Stop knop op elk moment om het programma te stoppen

Als u problemen ondervindt, controleer dan uw code en circuitconfiguratie grondig op fouten en probeer het opnieuw.

Methode 2: GPIO Zero-bibliotheek

De RPi.GPIO-bibliotheek is fantastisch, maar er is een nieuw kind in de buurt. De GPIO Zero-bibliotheek was: gemaakt door Raspberry Pi-communitymanager Ben Nuttall met de bedoeling om code eenvoudiger en gemakkelijker te lezen en te schrijven te maken.

Om de nieuwe bibliotheek uit te testen, opent u een nieuw Thonny-bestand en importeert u de bibliotheek.

from gpiozero import LED, Button
from signal import pause

Je zult merken dat je niet de hele bibliotheek hebt geïmporteerd. Omdat je alleen een LED en knop gebruikt, heb je alleen die modules in het script nodig. Wij importeren ook Pauze uit de signaalbibliotheek, een Python-bibliotheek voor gebeurtenisbeheer.

Het instellen van de pinnen is veel eenvoudiger met GPIO Zero:

led = LED(18)
button = Button(23)

Omdat de GPIO Zero-bibliotheek modules heeft voor de LED en de knop, hoeft u geen in- en uitgangen in te stellen zoals voorheen. U zult merken dat hoewel de pinnen niet zijn veranderd, de nummers hier anders zijn dan hierboven. Dat komt omdat GPIO Zero alleen de GPIO-pinnummers gebruikt (ook wel Broadcom- of BCM-nummers genoemd).

hoe een telefoon op een computer aan te sluiten

De rest van het script is slechts drie regels:

button.when_pressed = led.on
button.when_released = led.off
pause()

De pauze() call here zorgt er simpelweg voor dat het script niet meer afsluit wanneer het de bodem bereikt. De gebeurtenissen met twee knoppen worden geactiveerd wanneer de knop wordt ingedrukt en losgelaten. Sla uw script op en voer het uit en u zult hetzelfde resultaat zien als voorheen!

Twee manieren om een ​​knop aan Raspberry Pi toe te voegen

Van de twee manieren om de knop in te stellen, lijkt de GPIO Zero-methode de gemakkelijkste. Het is nog steeds de moeite waard om meer te weten te komen over de RPi.GPIO-bibliotheek als: de meeste beginnende Raspberry Pi-projecten gebruik het. Hoe eenvoudig dit project ook is, de kennis kan voor een aantal dingen worden gebruikt.

Het gebruik van de GPIO-pinnen is een geweldige manier om je eigen apparaten te leren en uit te vinden, maar het is verre van alles wat je met de Pi kunt doen. Onze onofficiële gids voor de Raspberry Pi staat boordevol creatieve ideeën en tutorials die je zelf kunt uitproberen! Voor nog een tutorial zoals deze, check out hoe maak je een Wi-Fi verbonden knop .

Deel Deel Tweeten E-mail 5 tips om uw VirtualBox Linux-machines een boost te geven

Moe van de slechte prestaties van virtuele machines? Dit is wat u moet doen om uw VirtualBox-prestaties te verbeteren.

Lees volgende
Gerelateerde onderwerpen
  • doe-het-zelf
  • Raspberry Pi
  • Python
  • GPIO
  • Zelfstudieprojecten voor doe-het-zelvers
Over de auteur Ian Buckley(216 artikelen gepubliceerd)

Ian Buckley is een freelance journalist, muzikant, performer en videoproducent die in Berlijn, Duitsland woont. Als hij niet aan het schrijven of op het podium staat, sleutelt hij aan doe-het-zelf-elektronica of code in de hoop een gekke wetenschapper te worden.

Meer van Ian Buckley

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren