Met behulp van een RPi een RGB LED (4 / 5 stap)

Stap 4: Het schrijven van het programma

Voordat we erin, is het belangrijk op te merken dat de manier van inspringen belangrijk in de Python taal is. Andere talen gebruiken leestekens zoals haken om te vertellen het programma de volgorde uit te voeren dingen; Python maakt gebruik van inspringen. Hierdoor kan u niet zitten kundig voor kopieer en plak de code uit deze pagina aan uw programma, zoals de opmaak kan niet worden volledig behouden. Gelieve te voelen vrij om te volgen en uw eigen code schrijven als u gaan, of gewoon mijn voorbeeldcode hier downloaden.

Als je nieuw bij codering bent, dan is het belangrijk om te vermelden dat er geen een manier om een programma te schrijven. Mensen hebben hun eigen stijl, maar meestal komt het neer op hoe u denkt over het oplossen van een probleem. Ik zal bieden voorbeeldcode en uitleggen van het regel-voor-regel, maar gelieve te weten dat dit niet de enige manier om de exacte hetzelfde resultaat te bereiken.

 import sys, time 

Hier, importeren wij twee ingebouwde bibliotheken - functies, variabelen, etc. die al is gedefinieerd en dat we kunnen bellen op.

 import RPi.GPIO as GPIO 

Dit is een bibliotheek van Raspbian dat ons toelaat om het gebruik van Python op controle GPIO pinnen.

 redPin = 11 greenPin = 13 bluePin = 15 

We definiëren nu, sommige variabelen - welke pinnen we verbinding met die RGB leiden maken zullen. Deze stap is niet nodig, maar het maakt het gemakkelijker om te pinnen veranderen als u wilt.

 def blink(pin): 

Hier, definiëren we een functie. Een functie is een set van stappen die de computer wordt uitgevoerd in de volgorde die we aan het geven. Deze bijzondere functie vergt één variabele om te draaien: het nummer van de pin die we willen oplichten.

 GPIO.setmode(GPIO.BOARD) 

We beginnen onze functie door te verwijzen naar een van onze bibliotheken, GPIO. Dan, we vertellen dat we een naamgevingsconventie voor de GPIO pinnen (waarvan er twee zijn), willen zodat het programma welke wij weet naar verwijst. Vervolgens vertellen we het gebruik van de 'board' Conventie (i.p.v. Verdragvan van de BMC), opnieuw met behulp van de bibliotheek van de GPIO.

 GPIO.setup(pin, GPIO.OUT) 

Nu, opnieuw met behulp van de bibliotheek van de GPIO, wij vertellen de Pi dat we willen gebruik maken van een pin. Maar eerst, we moeten specificeren die pin en hoe we willen gebruiken - ingang of uitgang. "Pin" is hier de variabele dat zal worden aangesloten op blink(pin).

 GPIO.output(pin, GPIO.HIGH) 

Nu dat de pin is opgezet, wordt deze regel het ingeschakeld. U moet de syntaxis herkent inmiddels; hier gebruiken we dezelfde variabele "pin" en het gebruik van de bibliotheek GPIO om de pincode instellen op de waarde "hoog". In het geval van GPIO pinnen, een "hoge" waarde resulteert in 3.3V wordt doorgegeven, of "op", terwijl een "laag" resultaten in 0v wordt doorgegeven waarde, of "off".

Nu gaan we om een functie als u wilt uitschakelen van lichten te definiëren. It's gonna er bijna identiek aan de vorige functie, alleen wij zal het instellen van de pinnen terug naar laag.

def turnOff(pin): def turnOff(pin): GPIO.setmode(GPIO.BOARD) GPIO.setup(pin, GPIO.OUT) GPIO.output(pin, GPIO.LOW) 

We moeten sommige specifieke functies definiëren voor kleur met behulp van de functies die we net gemaakt. Herinneren dat we pinnen 11, 13 en 15 voor rood, groen en blauw gebruiken. We beginnen met functies die verlichting inschakelen. Met dit soort functie nodig we niet eventuele parameters, zodat de haakjes leeg blijven; aanroepen van deze functie later in het programma zal gewoon uitvoeren.

 def redOn(): blink(redPin) 

Hier geven we de "blink" functie een pin-nummer te gebruiken, 11. Wanneer wij redOn() noemen, zal onze knipperen-functie beginnen uitvoeren met "pin" vervangen door "redPin". Herinneren dat eerder, zetten we redPin gelijk aan 11.

Nu doen we hetzelfde voor de rest van de kleuren.

 def greenOn(): blink(greenPin) def blueOn(): blink(bluePin) 

Vergeet niet dat bij de behandeling van licht, geel wordt gemaakt door het mengen van rood met groen, cyaan, groen en blauw, magenta met rood en blauw, en wit met door de combinatie van alle drie.

 def yellowOn(): blink(redPin) blink(greenPin) def cyanOn(): blink(greenPin) blink(bluePin) def magentaOn(): blink(redPin) blink(bluePin) def whiteOn(): blink(redPin) blink(greenPin) blink(bluePin) 

Tot slot, we de functies schrijven om te lichten uit te schakelen. Nogmaals, zullen de syntaxis vergelijkbaar met de bovenstaande functies.

 def redOff(): turnOff(redPin) def greenOff(): turnOff(greenPin) def blueOff(): turnOff(bluePin) def yellowOff(): turnOff(redPin) turnOff(greenPin) def cyanOff(): turnOff(greenPin) turnOff(bluePin) def magentaOff(): turnOff(redPin) turnOff(bluePin) def whiteOff(): turnOff(redPin) turnOff(greenPin) turnOff(bluePin) 

Nu zijn we klaar om te definiëren van onze belangrijkste functie; een lus die voortdurend zal vragen om gebruikersinvoer en reageren door te bellen naar verschillende functies. In dit geval, zal de gebruiker zitten kundig voor kleuren aan en uit zetten. Dit programma is zo geschreven dat het accepteert alleen een paar vooraf opgegeven ingangen. Anders, zal het niets doen en u een bericht in die zin.

Nogmaals, we niet vragen om alle variabelen met deze functie, zodat de haakjes leeg blijven. "terwijl True" in wezen zegt "terwijl het programma wordt uitgevoerd, dit doen", dus het draaien zal voortdurend totdat we stoppen.

 def main(): while True: cmd = raw_input("Choose an option:") 

We definiëren een nieuwe variabele "cmd" om later gebruiken en stel deze gelijk aan invoer van de gebruiker. Het zal ook voortdurend de gebruiker vragen om een optie te kiezen.

Nu is een "if"-instructie die alleen wordt uitgevoerd als de gebruikersinvoer precies overeenkomt met de tekst tussen de aanhalingstekens. Merk op dat hier gebruiken we twee "gelijk aan" symbolen. In Python, en inderdaad de meeste talen, wordt een enkele "gelijk is aan" gebruikt voor het wijzigen van de waarde van een variabele terwijl dubbelspel worden gebruikt om te vergelijken al dan niet variabele waarden met elkaar overeenkomen.

 if cmd == "red on": redOn() 

"elif" staat voor "anders, als". Dit laveert op de eerdere verklaring van 'als' en voegt nieuwe parameters, waardoor wij een keten van 'anders, als' verklaringen gemakkelijk maken.

 elif cmd == "red off": redOff() elif cmd == "green on": greenOn() elif cmd == "green off" greenOff() elif cmd == "blue on": blueOn() elif cmd == "blue off": blueOff() elif cmd == "yellow on": yellowOn() elif cmd == "yellow off": yellowOff() elif cmd == "cyan on": cyanOn() elif cmd == "cyan off": cyanOff() elif cmd == "magenta on": magentaOn() elif cmd == "magenta off": magentaOff() elif cmd == "white on": whiteOn() elif cmd == "white off": whiteOff() else: print("Not a valid command.") return 

Met onze laatste "else" statement, als de gebruiker probeert om input iets anders dan een van de opdrachten die hierboven opgegeven, zal het vertellen de gebruiker dat er een ongeldige opdracht. Het laatste wat dat de functie nodig heeft is dat "terugkeer" zodat het programma wanneer weet lus sequentieel doorzoeken.

 main() 

Dit is de laatste regel van onze code. Wanneer het programma wordt uitgevoerd, is deze regel noem de belangrijkste functie die we zojuist hebt gedefinieerd en de lus wordt ingesteld.

Gerelateerde Artikelen

Met behulp van een RGB-LED te detecteren kleuren

Met behulp van een RGB-LED te detecteren kleuren

I 'm gonna Toon u hoe u kunt een RGB LED en een fotocel cd's als de sensor van een kleur voor een micro-controller. Ik zal illustreren de methode om op te halen van een kleur met behulp van Arduino, en ik zal u tonen hoe u kunt controleren of de kleu
Een LED dobbelsteen met behulp van een PIC 16F84 (of 16F88)

Een LED dobbelsteen met behulp van een PIC 16F84 (of 16F88)

Dit is een opnieuw afdrukken van een project dat ik een aantal jaren geleden maakte-ik was trawlvisserij het web, en ontdekte dat anderen had geboekt, dus heb ik besloten om de details hier op instructables.com - zodat anderen kunnen profiteren.Veel
Met behulp van een LED voor een lichtsensor

Met behulp van een LED voor een lichtsensor

tot voor kort, CdS (Cadmium Sulfide) foto-weerstanden zijn vaak gebruikt voor licht sensing toepassingen. Helaas, ze hebben problemen. Omdat cd's cellen cadmium een giftig zwaar metaal bevatten, presenteren ze een probleem van de verwijdering. Daardo
RGB LED Tutorial (met behulp van een Arduino) (RGBL)

RGB LED Tutorial (met behulp van een Arduino) (RGBL)

LED's zijn geweldig. Maar er een punt waar het opvlammen eenvoudigweg niet voldoende is bij elk project komt. Voor deze gevallen een RGB (rood, groen, blauw) is LED het antwoord.Elke kleur gloed met een RGB LED zult u kunnen tot uw hartje begeert.Bij
555 RGB Rainbow LED Driver (niet met behulp van een 4029)

555 RGB Rainbow LED Driver (niet met behulp van een 4029)

| A_Teacher |OK, is dus voor zover ik kan vertellen, dit een uniek merk Nieuw ontwerp.Alle ruimte Cadets bellen: Als een manier van motiveren mensen om het project te maken, ik ben momenteel weggeven een 3 maand Instructables Pro lidmaatschap aan de
Met behulp van een enkele RGB LED (of een LED-strip) om informatie te tonen: klok, thermometer en een rare communicator

Met behulp van een enkele RGB LED (of een LED-strip) om informatie te tonen: klok, thermometer en een rare communicator

Een van de eerste projecten die ik deed met een Arduino was een Christmas lights garland. In feite, was gemaakt van een eenvoudige RGB LED-strip snijd doormidden, zoals Arduino slechts 6 hardware PWM outputs heeft. Ik wilde niet het aan vertoning tri
Beheersing van een RGB LED met de HC-06 Bluetooth-Module met behulp van Android OS(Arduino)

Beheersing van een RGB LED met de HC-06 Bluetooth-Module met behulp van Android OS(Arduino)

Dit leerprogramma zal verklaren het proces van een Bluetooth-Module van de HC-06 verbinden met een Arduino en beheersen van de kleur van een RGB LED met behulp van de ArduDroid-app op het Android besturingssysteem. Deze instelling zal zeer waarschijn
Het maken van een RGB-LED kleur Slider met blote Paint

Het maken van een RGB-LED kleur Slider met blote Paint

In deze tutorial zullen we een fysieke RGB (rood, groen en blauw) LED (light emitting diode) kleur mixer met Blote geleidende Paintbouwen. Elke RGB LED heeft drie interne light emitting diodes (LED's) voor elk van de kleuren - rood, groen en blauw. V
Multi-Color LED Lamp met behulp van een 8-kanaals LED Controller v.3

Multi-Color LED Lamp met behulp van een 8-kanaals LED Controller v.3

ik wilde om te experimenteren met het gebruik van verschillende kleuren LEDs, dan de standaard RGB, Multi-Color om effecten te creëren in een functionele lamp.Deze lamp maakt gebruik van cyaan, Magenta, geel, roze, Aqua-groen, en blauw 5mm LED's same
Met behulp van een Dot Matrix LED met een Arduino en Shift Register

Met behulp van een Dot Matrix LED met een Arduino en Shift Register

de Siemens DLO7135 Dot matrix LED is een verbazingwekkend stukje opto-elektronica. Het is gefactureerd als een 5 x 7 Dot Matrix intelligente Display (r) met geheugen/Decoder/Driver. Samen met dat het geheugen, het heeft een 96-ASCII karakterdisplay s
Hoe maak je een enkele LED knipperen met behulp van een Arduino Uno Board

Hoe maak je een enkele LED knipperen met behulp van een Arduino Uno Board

Vandaag, we zullen worden ter illustratie van hoe maak je een enkele LED knipperen met behulp van een Arduino Uno-board. Door elke stap te volgen, zal je dit doel bereiken.U zal het volgende nodig:Een Arduino BoardBrood bordUSB-connectorkabelEEN LED3
LED licht met behulp van een Arduino

LED licht met behulp van een Arduino

Een Arduino is een open-source van de computerhardware, open-source software en microcontroller-gebaseerde kits voor het bouwen van digitale apparaten en interactieve objecten die kunnen voelen en aansturen van fysieke apparaten. Er zijn verschillend
5 x 4 LED weergave matrix met behulp van een Basic Stamp 2 (bs2) en Charlieplexing

5 x 4 LED weergave matrix met behulp van een Basic Stamp 2 (bs2) en Charlieplexing

hebben een Basic Stamp 2 en sommige extra LEDs rondhangen? Waarom niet spelen rond met het concept van charlieplexing en maak een uitvoer met behulp van slechts 5 pinnen.Voor dit instructable ik zal worden met behulp van de BS2e maar lid van de famil
3 x 3 x 3 led kubus met behulp van een 555 timer en een scala van 4020 shift IC - geen programmering (voor de complete beginner zoals ikzelf)

3 x 3 x 3 led kubus met behulp van een 555 timer en een scala van 4020 shift IC - geen programmering (voor de complete beginner zoals ikzelf)

zien van een video van een 8 x 8 x 8 led kubus op you-tube, leidde me naar de instructables website voor de eerste keer, nu ik ben verslaafd. Echter had ik of moet ik zeggen hebben een fundamenteel probleem absoluut geen ervaring of kennis van elektr