2 sätt att lägga till en knapp till ditt Raspberry Pi -projekt

2 sätt att lägga till en knapp till ditt Raspberry Pi -projekt

Att lära sig använda GPIO -stiften på din Raspberry Pi öppnar en hel värld av möjligheter. De grundläggande principerna som lärt sig genom nybörjarprojekt banar väg mot användbar kunskap om både DIY -elektronik och programmering.





Denna handledning visar dig två sätt att lägga till en knapp till ditt Raspberry Pi -projekt. Knappen kommer att användas för att styra en LED. Skriftliga instruktioner finns tillgängliga under videon.





Du kommer behöva

För att komma igång, se till att du har följande komponenter:





  • 1 x Raspberry Pi (Any will do, modell 3B används i denna handledning)
  • 1 x tryckknapp
  • 1 x LED
  • 1 x 220 Ohm motstånd (högre värden är fina, din lysdiod blir bara svagare)
  • 1 x brödbräda
  • Anslut kablar

När du väl är samlad bör du ha komponenter som ser ut ungefär så här:

Du behöver också ett SD -kort med Raspbian -operativsystemet installerat. Det snabbaste sättet att göra detta är med NOOBS -bilden (New Out Of the Box Software). Instruktioner om hur du gör detta finns i den här videon:



Konfigurera kretsen

Du kommer att använda GPIO -stiften på Pi för att göra kretsen, och om du inte är bekant med dem vår guide till Raspberry Pi GPIO -stift kommer att hjälpa. Kretsen här är nästan densamma som i vår föregående Raspberry Pi LED -projekt , med tillägget av knappen du kommer att använda idag.

Ställ in din krets enligt detta diagram:





  • De 5v och GND stiften ansluts till kraftskenorna på brödbrädan.
  • Stift 12 (GPIO 18) ansluter till lysdiodens positiva ben.
  • Ett ben av motstånd fästs på det negativa benet på lysdioden, och det andra benet fästs på brädskivans markskena.
  • Stift 16 (GPIO 23) fästs på ena sidan av knappen, den andra sidan fästs på brädskivans markskena.

Så här ska det se ut när det väl är inställt:

Kontrollera om din krets är säker och sätt sedan på din Raspberry Pi.





Metod 1: RPi.GPIO -biblioteket

När Pi har startat, gå till menyn och välj Programmering> Thonny Python IDE . Ett nytt Python -skript öppnas. Om du är helt ny på Python är det ett bra språk för nybörjare och det finns många bra ställen att lära dig mer om Python när du är klar med denna handledning!

Börja med att importera RPi.GPIO -biblioteket och ställ in kortläget.

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

Deklarera nu variablerna för LED och knappstift.

ledPin = 12
buttonPin = 16

Observera att eftersom vi har styrläget inställt på STYRELSE vi använder stiftnumren snarare än GPIO -numren. Om det är förvirrande för dig kan ett Raspberry Pi pinout -diagram hjälpa till att rensa upp det.

Sätta upp knappen

Det är dags att ställa in GPIO -stiften. Ställ in LED-stiftet för utmatning och knappstiftet för att mata in med ett uppdragningsmotstånd

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

Texten efter GPIO.IN hänvisar till internt dragmotstånd av Raspberry Pi. Du måste aktivera detta för att få en ren avläsning från knappen. Eftersom knappen går till markpinnen behöver vi ett uppdragningsmotstånd för att hålla ingångspinnen HÖG tills du trycker på den.

Låt oss titta på upp- och neddragningsmotstånd innan vi går vidare.

Paus: Dra upp/dra ner motstånd

När du konfigurerar en GPIO -pin för att mata in läser den den för att bestämma dess status. I den här kretsen måste du läsa om en stift är HÖG eller LÅG för att aktivera lysdioden när knappen trycks in. Detta skulle vara enkelt om det var de enda staterna som en nål kan ha, men tyvärr finns det en tredje stat: FLYTANDE .

Ett flytande stift har ett värde mellan högt och lågt, vilket får ingången att verka oförutsägbart. Pull-up/pull-down motstånd löser detta.

Bilden ovan är ett förenklat diagram över en knapp och en Raspberry Pi. GPIO -stiftet ansluts till marken genom knappen. Det interna uppdragningsmotståndet fäster GPIO-stiftet till den interna Pi-strömförsörjningen. Denna ström flyter och tappen dras säkert upp till HÖG.

När du trycker på knappen ansluts GPIO -stiftet direkt till jordstiftet och knappen läser lågt.

Neddragningsmotstånd är för när omkopplaren är ansluten till strömstiftet. Den här gången fäster det interna motståndet GPIO -stiftet på marken och håller LOW intryckt tills du trycker på knappen.

Pull-up och Pull-down resistor teori är förvirrande vid första anblicken, men viktig kunskap att ha när man arbetar med mikrokontroller. För närvarande, om du inte riktigt förstår det, oroa dig inte!

Låt oss fortsätta där vi slutade.

Programslingan

Ställ sedan in programslingan:

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

De medan det är sant loop kör kontinuerligt koden inuti den tills vi avslutar programmet. Varje gång den slingas uppdateras den buttonState genom att läsa inmatningen från knappenPin . Medan knappen inte trycks, förblir den kvar HÖG .

När knappen trycks in, buttonState blir LÅG . Detta utlöser if uttalande , eftersom Falsk är det samma som LÅG , och lysdioden tänds. De annan uttalande släcker lysdioden när knappen Pin inte är falsk.

Spara och kör ditt skript

Spara ditt manus genom att klicka Arkiv> Spara som och välja ett filnamn. Du kan köra skissen genom att klicka på den gröna Spela -knappen i Thonny -verktygsfältet.

Tryck nu på knappen så ska din LED lysa! Tryck på den röda Sluta knappen när som helst för att stoppa programmet

Om du har problem, kontrollera din kod och kretsinställningar noggrant för fel och försök igen.

Metod 2: GPIO Zero Library

RPi.GPIO -biblioteket är fantastiskt, men det finns ett nytt barn på blocket. GPIO Zero Library var skapad av Raspberry Pi community manager Ben Nuttall med avsikt att göra koden enklare och lättare att läsa och skriva.

För att testa det nya biblioteket öppnar du en ny Thonny -fil och importerar biblioteket.

from gpiozero import LED, Button
from signal import pause

Du kommer att märka att du inte importerade hela biblioteket. Eftersom du bara använder en lysdiod och en knapp behöver du bara de modulerna i skriptet. Vi importerar också Paus från signalbiblioteket, som är ett Python -bibliotek för händelsehantering.

Att sätta upp stiften är mycket enklare med GPIO Zero:

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

Eftersom GPIO Zero -biblioteket har moduler för lysdioden och knappen behöver du inte ställa in ingångar och utgångar som tidigare. Du kommer att märka att även om stiften inte har ändrats, så är siffrorna här annorlunda än ovan. Det beror på att GPIO Zero endast använder GPIO -pin -numren (även kända som Broadcom- eller BCM -nummer).

hur man importerar spellista för att spotify

Resten av manuset är bara tre rader:

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

De paus() ring här stoppar helt enkelt skriptet från att lämna när det når botten. Tvåknappshändelserna aktiveras när knappen trycks in och släpps. Spara och kör ditt skript så ser du samma resultat som tidigare!

Två sätt att lägga till en knapp till Raspberry Pi

Av de två sätten att ställa in knappen verkar GPIO Zero -metoden vara den enklaste. Det är fortfarande värt att lära sig om RPi.GPIO -biblioteket som mest nybörjare Raspberry Pi -projekt Använd den. Så enkelt som det här projektet är kan kunskapen användas för ett antal saker.

Att använda GPIO -stiften är ett bra sätt att lära sig och uppfinna dina egna enheter, men det är långt ifrån allt du kan göra med Pi. Vår inofficiella guide till Raspberry Pi är full av kreativa idéer och handledning du kan testa själv! För en annan handledning som denna, kolla in hur man gör en Wi-Fi-ansluten knapp .

Dela med sig Dela med sig Tweet E-post 5 tips för att ladda dina VirtualBox Linux -maskiner

Trött på den dåliga prestanda som erbjuds av virtuella maskiner? Här är vad du bör göra för att öka din VirtualBox -prestanda.

Läs Nästa
Relaterade ämnen
  • DIY
  • Raspberry Pi
  • Pytonorm
  • GPIO
  • DIY -projektguider
Om författaren Ian Buckley(216 artiklar publicerade)

Ian Buckley är frilansjournalist, musiker, artist och videoproducent som bor i Berlin, Tyskland. När han inte skriver eller på scenen, pysslar han med DIY -elektronik eller kod i hopp om att bli en galet forskare.

Mer från Ian Buckley

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera