Kaarslicht simuleren met behulp van LED, PWM en RPi

De donkere dagen voor kerst zijn weer aangebroken, tijd om met je Raspberry Pi extra sfeer te maken. Met behulp van een gekleurde LED, weerstand en een klein Python script kun je heel eenvoudig een kaarslicht simuleren.

Om het fonkel-effect van de kaars voor elkaar te krijgen maken we gebruik van een GPIO poort en de PWM functie. Met behulp van PWM (pulse-width modulation) zal de led op hoge snelheid aan- en uitschakelen. Wanneer de gebruikte frequentie hoog genoeg is dan zal de traagheid van het oog ervoor zorgen dat het lijkt dat de led zachter brandt.

Gebruikte componenten

Gekleurde LED 20mA
330 Ohm weerstand
Breadboard
Dupont verbindingskabels 2x Male/Female

Raspberry Pi Zero, Raspberry Pi 2, Raspberry Pi 3
Raspbian Stretch (2017-11-29 kernel 4.9)

Aansluitschema

Een standaard LED heeft ongeveer 20mA nodig om te activeren. Wanneer er meer dan 20mA door de LED stroomt dan zal deze ‘doorbranden’. de Raspberry Pi levert standaard ~150 mA op de 3v3 GPIO pinnen. Om deze reden gebruiken we een 330 Ohm weerstand die ervoor zal zorgen dat de doorvoerstroom wordt beperkt tot ~20mA. Een LED heeft een lange (VCC) en een korte pin, de korte pin is de negatieve pin (GND).

Het aansluitschema ziet er als volgt uit:

kaarslicht-led-ras-berry-pi

RPI PIN RPI FUNCTIE LED
12 GPIO #18 330 Ohm Weerstand ▸ Lange pin LED
9 GND Korte pin LED

Kaarslicht python script

Nadat alles is aangesloten op de Raspberry Pi kunnen we van het onderstaande Python script gebruiken om een een LED kaars te simuleren.

#!/usr/bin/env python
# https://raspberrytips.nl/kaarslicht-pwm-raspberry-pi/
import random, time
import RPi.GPIO as GPIO
led = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(led, GPIO.OUT)
pwm = GPIO.PWM(led, 100)
RUNNING = True
def brightness():
return random.randint(5, 100)
def flicker():
return random.random() / 8
print "Stop -> CTRL + C"
try:
while RUNNING:
pwm.start(0)
pwm.ChangeDutyCycle(brightness())
time.sleep(flicker())
except KeyboardInterrupt:
running = False
finally:
pwm.stop()
GPIO.cleanup()
view raw kaarslicht.py hosted with ❤ by GitHub

Kopieer het bovenstaande script of download deze op je Raspberry Pi met:

wget https://raspberrytips.nl/kaarslicht.py

Activeer het script:

python kaarslicht.py

Wanneer alles goed is aangesloten zal de LED oplichten met een fonkel-effect. Je kunt het script onderbreken met behulp van control + C, hierdoor wordt de GPIO poort netjes afgesloten.

raspberry-pi-led-kaarslicht-python

Plaats een reactie