Raspberry Pi - Knop - LED

Deze tutorial leert u hoe u de Raspberry Pi en een knop gebruikt om een LED aan te sturen. We bekijken twee verschillende toepassingen:

Toepassing 1 - De LED-status is gesynchroniseerd met de knopstatus. In detail:

Toepassing 2 - De LED-status wordt omgeschakeld (toggles) iedere keer dat de knop wordt ingedrukt. Specifieker:

Bij Toepassing 2 is het noodzakelijk om de knop te debouncen, zodat deze betrouwbaar werkt. We leggen uit waarom dit belangrijk is door te vergelijken hoe de LED zich gedraagt met en zonder debouncing in de Raspberry Pi code.

Hardware Benodigd

1×Raspberry Pi 5
1×Breadboard-mount knop met kap
1×Breadboard-mount knop kit
1×Paneel-montage drukknop
1×Drukknopmodule
1×LED Kit
1×LED (red)
1×220 ohm weerstand
1×Breadboard (experimenteerprint)
1×Jumper wires (verbindingsdraden)
1×(Aanbevolen) Schroefklem Block Shield voor Raspberry Pi
1×(Aanbevolen) Raspberry Pi Prototyping Basisplaat & Breadboard Kit
1×(Aanbevolen) HDMI-Touchscreen-Monitor voor Raspberry Pi

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over LED en Knop

Als u niet vertrouwd bent met LED’s en knoppen (inclusief pinout, werking en programmeren), kunnen de volgende tutorials helpen:

Bedradingsschema

Raspberry Pi Button LED bedrading schema

This image is created using Fritzing. Click to enlarge image

Toepassing 1 - De LED-status is synchroon met de knopstatus

Snel aan de slag

  • Zorg ervoor dat u Raspbian of een ander besturingssysteem compatible met Raspberry Pi op uw Pi heeft geïnstalleerd.
  • Controleer of uw Raspberry Pi verbonden is met hetzelfde lokale netwerk als uw pc.
  • Zorg dat uw Raspberry Pi verbonden is met internet als u aanvullende libraries moet installeren.
  • Als dit de eerste keer is dat u een Raspberry Pi gebruikt, zie hoe u de Raspberry Pi instelt.
  • Verbind uw pc met de Raspberry Pi via SSH met behulp van de ingebouwde SSH-client op Linux en macOS of PuTTY op Windows. Zie hoe u uw pc met Raspberry Pi via SSH verbindt.
  • Zorg dat u de RPi.GPIO library geïnstalleerd heeft. Zo niet, installeer deze dan met het volgende commando:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Maak een Python scriptbestand aan met de naam button_led.py en voeg de volgende code toe:
# Deze Raspberry Pi code is ontwikkeld door newbiely.nl # Deze Raspberry Pi code wordt zonder enige beperking aan het publiek beschikbaar gesteld. # Voor volledige instructies en schema's, bezoek: # https://newbiely.nl/tutorials/raspberry-pi/raspberry-pi-button-led import RPi.GPIO as GPIO # Constants won't change. They're used here to set pin numbers: BUTTON_PIN = 16 # The number of the pushbutton pin LED_PIN = 18 # The number of the LED pin # Variables will change: button_state = 0 # Variable for reading the pushbutton status # Set up GPIO GPIO.setmode(GPIO.BCM) # Use BCM GPIO numbering GPIO.setup(LED_PIN, GPIO.OUT) # Initialize the LED pin as an output GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Initialize the pushbutton pin as a pull-up input try: while True: # Read the state of the pushbutton value: button_state = GPIO.input(BUTTON_PIN) # Control LED according to the state of the button if button_state == GPIO.LOW: # If the button is pressed GPIO.output(LED_PIN, GPIO.HIGH) # Turn on LED else: # Otherwise, the button is not pressed GPIO.output(LED_PIN, GPIO.LOW) # Turn off LED except KeyboardInterrupt: # Clean up GPIO on program exit GPIO.cleanup()
  • Sla het bestand op en voer het Python script uit door het volgende commando in de terminal te typen:
python3 button_led.py
  • Druk op de knop en hou deze enkele seconden ingedrukt.
  • Bekijk de verandering in de status van de LED. U zult zien dat de LED-status synchroon loopt met de knopstatus.

Het script draait in een oneindige lus totdat u in de terminal tegelijk Ctrl + C indrukt om te stoppen.

Code-uitleg

Bekijk de regel-voor-regel uitleg die in de commentaren in de broncode staat!

Toepassing 2 - Knop schakelt de LED aan/uit (toggle)

Snel aan de slag

  • Maak een Python scriptbestand button_toggle_led.py en voeg de volgende code toe:
# Deze Raspberry Pi code is ontwikkeld door newbiely.nl # Deze Raspberry Pi code wordt zonder enige beperking aan het publiek beschikbaar gesteld. # Voor volledige instructies en schema's, bezoek: # https://newbiely.nl/tutorials/raspberry-pi/raspberry-pi-button-led import RPi.GPIO as GPIO import time # Constants won't change BUTTON_PIN = 16 # The number of the pushbutton pin LED_PIN = 18 # The number of the LED pin # Variables will change led_state = GPIO.LOW # The current state of the LED prev_button_state = GPIO.LOW # The previous state of the button button_state = GPIO.LOW # The current state of the button # Set up GPIO GPIO.setmode(GPIO.BCM) # Use BCM GPIO numbering GPIO.setup(LED_PIN, GPIO.OUT) # Initialize the LED pin as an output GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Initialize the pushbutton pin as a pull-up input try: while True: # Read the state of the pushbutton value prev_button_state = button_state # Save the last state button_state = GPIO.input(BUTTON_PIN) # Read new state if prev_button_state == GPIO.HIGH and button_state == GPIO.LOW: time.sleep(0.1) # 100 milliseconds debounce time print("The button is pressed") # Toggle the state of the LED if led_state == GPIO.LOW: led_state = GPIO.HIGH else: led_state = GPIO.LOW # Control LED according to the toggled state GPIO.output(LED_PIN, led_state) except KeyboardInterrupt: # Clean up GPIO on program exit GPIO.cleanup()
  • Sla het bestand op en voer het Python script uit via het volgende commando in de terminal:
python3 button_toggle_led.py
  • Druk meerdere keren op de knop en laat hem los.
  • Bekijk hoe de LED-status verandert. U zult zien dat de LED-status omschakelt elke keer dat u op de knop drukt.

Code-uitleg

Bekijk de regel-voor-regel uitleg die in de commentaren in de broncode staat!

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u stap voor stap verder met het aansluiten en programmeren van de Raspberry Pi met knop en LED.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!