Raspberry Pi - LED - Faden

Deze tutorial leert u hoe u de Raspberry Pi programmeert om een LED te laten faden. We doorlopen drie voorbeelden en vergelijken de verschillen daartussen:

Hardware Benodigdheden

1×Raspberry Pi 5
1×LED Kit
1×LED (red)
1×220 ohm weerstand
1×Breadboard (experimenteerprint)
1×Jumperdraden (man-man)
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 de LED

De LED Pinout

Een LED heeft twee pinnen:

  • De Kathode(-) pin moet worden aangesloten op GND (0V)
  • De Anode(+) pin wordt gebruikt om de status van de LED te regelen
LED pinout

Hoe het Werkt

Zodra de kathode(-) op GND is aangesloten:

  • Het aansluiten van GND op de anode(+) zorgt ervoor dat de LED UIT is.
  • Het aansluiten van VCC op de anode(+) zorgt ervoor dat de LED AAN is.
  • Het genereren van een PWM-signaal op de anode(+) stelt u in staat de helderheid van de LED aan te passen afhankelijk van de PWM-waarde. Deze waarde loopt van 0 tot 255, waarbij hogere waarden de LED helderder maken en lagere waarden deze donkerder maken.
  • Als de PWM-waarde 0 is, komt dit overeen met GND en zal de LED UIT zijn.
  • Als de PWM-waarde 255 is, komt dit overeen met VCC en zal de LED volledig AAN zijn.
Hoe LED werkt

※ Notiz:

Voor de meeste LED’s moet er een weerstand worden geplaatst tussen de anode (+) en VCC. De waarde van de weerstand wordt bepaald door de specificaties van de LED.

Raspberry Pi - LED Faden

Sommige pinnen van de Raspberry Pi kunnen geprogrammeerd worden om een PWM-signaal te genereren. Om een LED te laten faden, kunnen we de anode (+) pin van de LED verbinden met een pin van de Raspberry Pi, de kathode (-) met ground, en de Raspberry Pi zo programmeren dat hij PWM genereert op deze pin.

Bedradingsschema

Raspberry Pi LED bedradingsschema

This image is created using Fritzing. Click to enlarge image

Hoe te Programmeren

  • Zet een digitale uitgang op een pin van de Raspberry Pi met de functie GPIO.setup().
  • Bijvoorbeeld pin GPIO18:
GPIO.setup(18, GPIO.OUT)
  • Pas de helderheid van de LED aan door een PWM-signaal te creëren met de functie pwm.ChangeDutyCycle().
pwm = GPIO.PWM(LED_PIN, 1000) pwm.start(0) pwm.ChangeDutyCycle(brightness)

De helderheid kan variëren van 0 tot 100.

Raspberry Pi Code fadeert LED

Snelle Stappen

  • Zorg dat u Raspbian of een andere Raspberry Pi compatibel besturingssysteem op uw Pi heeft geïnstalleerd.
  • Zorg dat uw Raspberry Pi verbonden is met hetzelfde lokale netwerk als uw pc.
  • Zorg dat uw Raspberry Pi verbonden is met internet als u libraries moet installeren.
  • Als u de Raspberry Pi voor het eerst gebruikt, zie dan hoe u de Raspberry Pi instelt
  • Verbind uw pc met de Raspberry Pi via SSH met de ingebouwde SSH-client op Linux en macOS of PuTTY op Windows. Zie hoe u uw pc met Raspberry Pi verbindt via SSH.
  • Controleer of 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 led_fade.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-led-fade import RPi.GPIO as GPIO from time import sleep LED_PIN = 18 fadePercent = 5 brightness = 0 GPIO.setmode(GPIO.BCM) GPIO.setup(LED_PIN,GPIO.OUT) pwm = GPIO.PWM(LED_PIN, 1000) pwm.start(0) try: while True: pwm.ChangeDutyCycle(brightness) # change the brightness for next time through the loop: brightness = brightness + fadePercent; # reverse the direction of the fading at the ends of the fade: if brightness <= 0 or brightness >= 100: fadePercent = -fadePercent; # wait for 30 milliseconds to see the dimming effect sleep(0.03); finally: GPIO.cleanup()
  • Sla het bestand op en start het Python-script door het volgende commando in de terminal in te voeren:
python3 led_fade.py
  • Bekijk de helderheid van de LED.

Het script loopt oneindig door totdat u Ctrl + C indrukt in de terminal.

Code Uitleg

Bekijk de regel-voor-regel uitleg die in de comments van de broncode is opgenomen!

※ Notiz:

Het bovenstaande voorbeeld gebruikt de functie time.sleep() om een fade-in en fade-out effect te creëren. De functie time.sleep() zorgt er echter voor dat het faden niet soepel verloopt en blokkeert de uitvoering van andere code. In de volgende secties leren we hoe u een fade-in en fade-out soepel kunt laten verlopen zonder andere code te blokkeren, met gebruik van de functie millis().

Hoe een LED in en uit te faden binnen een periode zonder gebruik van time.sleep()

Snelle Stappen

  • Maak een Python-scriptbestand aan met de naam led_fade.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-led-fade import RPi.GPIO as GPIO import time LED_PIN = 18 FADE_PERIOD = 3000 FADE_IN_MODE = True FADE_OUT_MODE = False fadeMode = FADE_IN_MODE start_time = 0 brightness = 0 def _map(x, in_min, in_max, out_min, out_max): return int((x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min) GPIO.setmode(GPIO.BCM) GPIO.setup(LED_PIN,GPIO.OUT) pwm = GPIO.PWM(LED_PIN, 1000) pwm.start(0) start_time = time.time()*1000 try: while True: progress = time.time()*1000 - start_time if fadeMode == FADE_IN_MODE: if progress <= FADE_PERIOD: brightness = _map(progress, 0, FADE_PERIOD, 0, 100) print(brightness) pwm.ChangeDutyCycle(brightness) else: start_time = time.time()*1000 fadeMode = FADE_OUT_MODE progress = 0 if fadeMode == FADE_OUT_MODE: if progress <= FADE_PERIOD: brightness = 100 - _map(progress, 0, FADE_PERIOD, 0, 100) print(brightness) pwm.ChangeDutyCycle(brightness) else: start_time = time.time()*1000 fadeMode = FADE_IN_MODE progress = 0 finally: pwm.stop() GPIO.cleanup()
  • Sla het bestand op en start het Python-script door het volgende commando in de terminal in te voeren:
python3 led_fade.py
  • Bekijk de helderheid van de LED.

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 sneller vertrouwd te raken met het faden van een LED op de Raspberry Pi.

※ 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!