Inhoudsopgave:

Meerdere LED's besturen met Python en de GPIO-pinnen van je Raspberry Pi: 4 stappen (met afbeeldingen)
Meerdere LED's besturen met Python en de GPIO-pinnen van je Raspberry Pi: 4 stappen (met afbeeldingen)

Video: Meerdere LED's besturen met Python en de GPIO-pinnen van je Raspberry Pi: 4 stappen (met afbeeldingen)

Video: Meerdere LED's besturen met Python en de GPIO-pinnen van je Raspberry Pi: 4 stappen (met afbeeldingen)
Video: Webinar ESP32 and the IoT 2024, November
Anonim
Meerdere LED's bedienen met Python en de GPIO-pinnen van je Raspberry Pi
Meerdere LED's bedienen met Python en de GPIO-pinnen van je Raspberry Pi

Deze Instructable laat zien hoe je meerdere GPIO-pinnen op je RaspberryPi kunt besturen om 4 LED's van stroom te voorzien. Het zal je ook kennis laten maken met parameters en voorwaardelijke instructies in Python.

Onze vorige Instructable Het gebruik van de GPIO-pinnen van uw Raspberry Pi om een LED te besturen, laat zien hoe u een enkele LED in- en uitschakelt met behulp van de opdracht GPIO.output. Deze Instructable bouwt voort op die kennis om u te leren hoe u meer controle over uw circuit kunt krijgen.

Stap 1: Wat heb je nodig?

Wat je nodig zult hebben
Wat je nodig zult hebben
Wat je nodig zult hebben
Wat je nodig zult hebben

- Een RaspberryPi met Raspbian al geïnstalleerd. Je moet ook toegang hebben tot de Pi met een monitor, muis en toetsenbord of via Remote Desktop. U kunt elk model Raspberry Pi gebruiken. Als je een van de Pi Zero-modellen hebt, wil je misschien wat header-pinnen op de GPIO-poort solderen.

- Rode, blauwe, gele en groene LED's

- Een soldeerloze prototype breadboard

- 4 x 330 ohm weerstanden

- Sommige mannelijke naar vrouwelijke jumperdraden

Stap 2: Bouw uw circuit

Bouw je circuit
Bouw je circuit
Bouw je circuit
Bouw je circuit

Bouw het bovenstaande circuit op uw breadboard en zorg ervoor dat geen van de componenten van de componenten elkaar raakt en dat de LED's op de juiste manier zijn aangesloten.

Hoe identificeer je de positieve en negatieve draden (de polariteit) op je LED's? Als je goed naar een LED kijkt, zie je dat er twee kleine stukjes metaal in de gekleurde behuizing zitten. Deze worden de anode en kathode genoemd. De kathode is de grootste van de twee en is ook verbonden met de negatieve leiding van de LED's.

Nadat u uw circuit hebt gecontroleerd, sluit u de startkabels aan op de GPIO-pinnen van uw Raspberry Pi door het bovenstaande diagram te volgen.

Stap 3: Maak een script om de LED's te bedienen en te testen

Maak een script om de LED's te bedienen en te testen
Maak een script om de LED's te bedienen en te testen

Open IDLE op je Raspberry Pi (Menu > Programmeren > Python 2 (IDLE)).

Open een nieuw project ga naar Bestand > Nieuw bestand. Typ (of kopieer en plak) de volgende code:

importeer RPi. GPIO als GPIO

importtijd GPIO.setmode(GPIO. BCM) GPIO.setup(17, GPIO. OUT) GPIO.setup(18, GPIO. OUT) GPIO.setup(22, GPIO. OUT) GPIO.setup(23, GPIO. OUT) GPIO.output (17, True) time.sleep(3) GPIO.output (17, False) time.sleep(1) GPIO.output (18, True) time.sleep(3) GPIO.output (18, False) time.sleep(1) GPIO.output(22, True) time.sleep(3) GPIO.output(22, False) time.sleep(1) GPIO.output(23, True) time.sleep(3) GPIO. uitvoer(23, False)

Sla uw project op als multilights.py (Bestand > Opslaan als) in uw Raspberry Pis Documents-map.

Open Terminal op uw Raspberry Pi (Menu > Accessoires > Terminal) en navigeer naar uw Documenten-map door het volgende te typen:

cd /home/pi/Documenten

U kunt nu uw nieuwe script uitvoeren door het volgende te typen:

python multilights.py

De lichten zullen beurtelings aan en uit gaan. Het bovenstaande script gebruikt het time.sleep-commando om een pauze te creëren tussen elke stap, waardoor elk lampje 3 seconden blijft branden en 1 seconde moet wachten voordat het volgende lampje wordt ingeschakeld.

Stap 4: Flexibiliteit toevoegen door gebruik te maken van parameters en voorwaardelijke verklaringen

Door gebruik te maken van parameters en conditionele statements kunnen we het bovenstaande script veel flexibeler maken.

Met een parameter kunt u een waarde opslaan die u later in het script kunt gebruiken. De meest voorkomende soorten waarden zijn strings (tekst), gehele getallen (hele getallen) of floats (decimale getallen).

Een voorwaardelijke verklaring bepaalt of een codesegment moet worden uitgevoerd door te controleren of aan een bepaalde voorwaarde is voldaan. De voorwaarde kan ook parameters omvatten.

Open IDLE op je Raspberry Pi en open een nieuw project (Bestand > Nieuw bestand). Typ dan het volgende. Zorg ervoor dat alle inspringingen (tabs) zijn opgenomen met behulp van de tab-toets:

importeer RPi. GPIO als GPIO

import tijd van sys import argv whichled=argv[1] ledaction = argv[2] LEDa=17 LEDb=18 LEDc=22 LEDd=23 GPIO.setmode(GPIO. BCM) GPIO.setup(LEDa, GPIO. OUT) GPIO. setmode(GPIO. BCM) GPIO.setup(LEDb, GPIO. OUT) GPIO.setmode(GPIO. BCM) GPIO.setup(LEDc, GPIO. OUT) GPIO.setmode(GPIO. BCM) GPIO.setup(LEDd, GPIO. OUT) if ledaction=="off": if whichled=="a": GPIO.output(LEDa, False) if whichled=="b": GPIO.output(LEDb, False) if whichled=="c": GPIO.output(LEDc, False) if whichled=="d": GPIO.output(LEDd, False) if whichled=="all": GPIO.output(LEDa, False) GPIO.output(LEDb, False) GPIO. output(LEDc, False) GPIO.output(LEDd, False) if ledaction=="on": if whichled=="a": GPIO.output(LEDa, True) if whichled=="b": GPIO.output(LEDb, True) if whichled=="c": GPIO.output(LEDc, True) if whichled=="d": GPIO.output(LEDd, True) if whichled=="all": GPIO.output(LEDa, True) GPIO.output (LEDb, True) GPIO.output (LEDc, True) GPIO.output (LEDd, True)

Sla uw project op als controllight.py (Bestand> Opslaan als) in uw map Documenten. Open nu Terminal (Menu> Accessoires> Terminal) en typ de volgende opdracht:

python controllight.py b aan

De tweede LED moet gaan branden. Typ nu het volgende:

python controllight.py b uit

De tweede LED moet uitgaan.

In regel 5, 6, 7 & 8 maken we de parameters LEDa, LEDb, LEDc en LEDd aan om op te slaan welke GPIO-pin we op welke LED hebben aangesloten. Dit stelt ons in staat om alternatieve GPIO-pinnen te gebruiken zonder substantiële wijzigingen in het script aan te brengen.

Als we bijvoorbeeld in plaats daarvan de eerste LED's zouden aansluiten op Pin 3 (GPIO 2), zouden we regel 5 moeten veranderen in het volgende:

LEDa=2

Regel 4 slaat de waarden die u hebt getypt na controllight.py op in de parameters wholed (c) en ledaction (on). Het script gebruikt vervolgens deze parameters, samen met een aantal voorwaardelijke instructies om te beslissen welke LED moet worden bestuurd en of deze moet worden in- of uitgeschakeld.

Regel 16 (if ledaction=="on":) is een voorwaardelijke instructie. De ingesprongen regels die op deze instructie volgen, worden alleen uitgevoerd als aan de voorwaarde van de instructie is voldaan. In dit scenario is de voorwaarde dat ledaction de tekst on bevat.

Door de andere voorwaardelijke instructies van het script te lezen, kunt u voorspellen wat er zal gebeuren als u de volgende opdracht in Terminal typt?

python controllight.py alles aan

Waarom probeer je het niet eens en plaats je antwoord in de comments hieronder.

Aanbevolen: