Raspberry Pi – LED aansturen via GPIO pin (Python)
In dit voorbeeld gaan we een LED laten branden via de GPIO pinnen van de Raspberry Pi met een python script.
Wat heb je nodig?
1) Python RPi.GPIO bibliotheek (standaard geinstalleerd op de wheezy image)
Sluit een LED aan met een weerstand volgens onderstaand schema:
1) GND > Weerstand> Kathode LED
2) PIN7 (GPIO4) > Anode LED
Voorbeeld LED aan zetten:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#!/bin/python ledPin = 4 # importeer de GPIO bibliotheek. import RPi.GPIO as GPIO # Zet de pinmode op Broadcom SOC. GPIO.setmode(GPIO.BCM) # Zet waarschuwingen uit. GPIO.setwarnings(False) # Zet de GPIO pin als uitgang. GPIO.setup(ledPin, GPIO.OUT) # Zet de LED aan. GPIO.output(ledPin, 1) |
Knipperlicht:
Hieronder vind je een python script in om het LEDje als een knipperlicht te laten knipperen.
Maak een bestand aan, bijvoorbeeld /usr/src/knipperlicht.py (evt onder root, en vergeet niet chmod te gebruiken om het bestand uit te kunnen voeren), voeg deze inhoud daar in toe:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#!/bin/python # importeer de GPIO bibliotheek. import RPi.GPIO as GPIO # Importeer de time biblotheek voor tijdfuncties. from time import sleep # Zet de pinmode op Broadcom SOC. GPIO.setmode(GPIO.BCM) # Zet waarschuwingen uit. GPIO.setwarnings(False) # Zet de GPIO pin als uitgang. GPIO.setup(4, GPIO.OUT) try: while True: # Zet de LED aan. GPIO.output(4, 1) # Wacht een seconde. sleep(1) # Zet de LED uit. GPIO.output(4, 0) # Wacht een seconde. sleep(1) except KeyboardInterrupt: # GPIO netjes afsluiten. GPIO.cleanup() |
Start het script met: sudo python /usr/src/knipperlicht.py , druk op CTRL+C om het script te stoppen!
Het LEDje zal aan en uit gaan.
LED dimmen met PWM
Hieronder vind je een python script in om het LEDje te dimmen met behulp van PWM.
Maak een bestand aan, bijvoorbeeld /usr/src/dimled.py (evt onder root, en vergeet niet chmod te gebruiken om het bestand uit te kunnen voeren), voeg deze inhoud daar in toe:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
#!/bin/python # importeer de GPIO bibliotheek. import RPi.GPIO as GPIO # Importeer de time biblotheek voor tijdfuncties. from time import sleep # Zet de pinmode op Broadcom SOC. GPIO.setmode(GPIO.BCM) # Zet waarschuwingen uit. GPIO.setwarnings(False) # Zet de GPIO pin als uitgang. GPIO.setup(4, GPIO.OUT) # Start PWM op PIN 4 met een frequentie van 50 Hz p = GPIO.PWM(4, 50) # Start PWM met een duty-cycle van 0. p.start(0) try: while 1: # Ga van 0 naar 100 in stappen van 2. for dc in range(0, 101, 2): # wijzig de duty-cycle. p.ChangeDutyCycle(dc) # Wacht 100ms. time.sleep(0.1) # Ga van 100 naar 0 in stappen van 2. for dc in range(100, -1, -2): # wijzig de duty-cycle. p.ChangeDutyCycle(dc) # Wacht 100ms. time.sleep(0.1) except KeyboardInterrupt: # PWM stoppen. p.stop() # GPIO netjes afsluiten. GPIO.cleanup() |
Start het script met: sudo python /usr/src/dimled.py , druk op CTRL+C om het script te stoppen!
Het LEDje zal van fel naar dimmen gaan en weer terug.