Inhoudsopgave:
- Stap 1: Wat heb je nodig?
- Stap 2: Bouw uw circuit
- Stap 3: Maak een script om de LED's te bedienen en te testen
- Stap 4: Flexibiliteit toevoegen door gebruik te maken van parameters en voorwaardelijke verklaringen
Video: Meerdere LED's besturen met Python en de GPIO-pinnen van je Raspberry Pi: 4 stappen (met afbeeldingen)
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
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?
- 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 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
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:
Achtergrond van meerdere afbeeldingen verwijderen met Photoshop 2020 - Ajarnpa
Achtergrond van meerdere afbeeldingen verwijderen met Photoshop 2020: het verwijderen van de achtergrond van een afbeelding is nu supereenvoudig! Zo gebruik je Adobe Photoshop 2020 om de achtergrond van meerdere (batch)afbeeldingen te verwijderen met een eenvoudig script
Een GoPro Hero 4 besturen met een RC-zender: 4 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Een GoPro Hero 4 besturen met een RC-zender: Het doel van dit project is om een GoPro Hero 4 op afstand te kunnen bedienen via een RC-zender. Deze methode gaat gebruik maken van de GoPro's ingebouwde Wifi & HTTP API voor het besturen van het apparaat & is geïnspireerd op PROTOTYPE: KLEINSTE EN GOEDKOOPSTE
Het besturen van een weergave met zeven segmenten met behulp van Arduino en 74HC595 Shift Register - Ajarnpa
Bediening van zevensegmentendisplay met Arduino en 74HC595 Shift Register: Hé, wat is er, jongens! Akarsh hier van CETech.Seven Segment Displays zijn goed om naar te kijken en zijn altijd een handig hulpmiddel om gegevens in de vorm van cijfers weer te geven, maar er is een nadeel aan hen, namelijk dat wanneer we een Seven Segment Display in reali
Een LED besturen met behulp van de NodeMCU WiFi-module en de Blynk-app: 7 stappen
Een LED bedienen met behulp van de NodeMCU WiFi-module en Blynk-app: deze Instructable laat u zien hoe u een LED kunt bedienen met behulp van de NodeMCU ESP8266 WiFi-module via de Blynk-smartphone-app. Als je een beginner bent, lees dan verder. Als je meer ervaring hebt, ben je misschien geïnteresseerd in het overslaan naar het einde, waar ik het heb over t
Meerdere LED-displaymodule: 6 stappen (met afbeeldingen)
Meerdere LED-displaymodule: Hallo allemaal, ik werk graag met LED-displays met 7 segmenten of met dot-matrix en ik heb er al veel verschillende projecten mee gedaan. Elke keer zijn ze interessant omdat er een soort magie zit in hoe ze kunnen werken, want wat je ziet