Med en RPi att styra en RGB LED (4 / 5 steg)

Steg 4: Skriva programmet


Innan vi går in det, är det viktigt att notera att indrag är viktigt i Python-språket. Andra språk använder skiljetecken som parentes säga programmet för att köra saker; Python använder indrag. På grund av detta, kan du inte att kunna helt enkelt kopiera och klistra in koden från denna sida till din program som formateringen helt inte bevaras. Du får gärna följa med och skriva egen kod som du gå, eller helt enkelt ladda ner min exempelkod här.

Om du är ny till kodning, är det viktigt att nämna att det finns inte ett sätt att skriva ett program. Människor har sin egen stil, men det kommer mesta till hur du tycker om att lösa ett problem. Jag kommer ge exempelkod och förklara det rad för rad, men tänk på att detta inte är det enda sättet att uppnå exakt samma resultat.

importera sys, tid

Här, importerar vi två inbyggda bibliotek - funktioner, variabler, etc. som redan har definierats och att vi kan ringa på.

importera RPi.GPIO som GPIO

Detta är en Raspbian bibliotek som tillåter oss att använda Python till kontroll GPIO stift.

redPin = 11
greenPin = 13
bluePin = 15

Nu har definiera vi vissa variabler - vilket stift som vi kommer att ansluta till som RGB leder. Detta steg är inte nödvändigt, men det gör det lättare att byta stift om du behöver.

def blink(pin):

Här definierar vi en funktion. En funktion är en uppsättning steg som datorn körs i den ordning som vi ger till den. Denna särskilda funktion kommer att kräva en variabel för att köra: antalet stift som vi vill lysa upp.

GPIO.setmode (GPIO. STYRELSEN)

Vi startar vår funktion genom att referera till en av våra bibliotek, GPIO. Sedan berätta vi det att vi vill välja en namngivningskonvention för GPIO stiften (som det finns två), så att programmet vet vilka som vi hänvisar till. Sedan, vi säger det att använda "styrelsen" konventionen (snarare än BMC konventionen), igen med GPIO biblioteket.

GPIO.setup (pin, GPIO. OUT)

Nu, återigen med hjälp av GPIO biblioteket, vi säga Pi att vi vill använda en PIN-kod. Men först måste vi ange som stift och hur vi vill använda den - ingång eller utgång. Här är "pin" den variabel som kommer att anslutas till blink(pin).

GPIO.output (pin, GPIO. HÖG)

Nu när PIN-koden har lagts upp, vänder den här raden det på. Du bör känna igen syntaxen nu; här använder vi samma variabel "pin" och med hjälp av GPIO biblioteket för att ange PIN-koden till ett värde av "hög". När det gäller GPIO stift, en "hög" värde resulterar i 3.3V överförs eller "på", medan en "låg" uppskattar resultat i 0v överförs, eller "off".

Nu ska vi definiera en funktion om du vill inaktivera lampor. Det kommer att se nästan identisk med den tidigare funktionen, bara vi kommer sätta stiften tillbaka till låg.

def turnOff(pin):
GPIO.setmode (GPIO. STYRELSEN)
GPIO.setup (pin, GPIO. OUT)
GPIO.output (pin, GPIO. LÅG)

Vi måste definiera vissa specifika funktioner till färgen med de funktioner vi just gjort. Minns att vi använder stift 11, 13 och 15 för rött, grönt och blått. Vi börjar med funktioner som vänder lampor på. Med denna typ av funktion, kommer inte vi kräva några parametrar, så hakparenteserna bo tom; kräver denna funktion senare i programmet kommer helt enkelt att köra den.

def redOn():
Blink(redPin)

Här ger vi funktionen "blink" en pin-kod att använda, 11. När vi kallar redOn(), börjar vår blink funktion köra med "pin" ersättas med "redPin". Påminna om att tidigare, vi sätter redPin lika med 11.

Nu gör vi samma sak för resten av färgerna.

def greenOn():
Blink(greenPin)

def blueOn():
Blink(bluePin)

Kom ihåg att när man arbetar med ljus, gul görs genom att blanda röda med grön, cyan med grön och blå, magenta med röda och blå och vit genom att kombinera alla tre.

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)

Slutligen skriver vi funktioner om du vill inaktivera lampor. Igen, blir syntaxen liknar funktionerna ovan.

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 är vi redo att definiera våra huvudsakliga funktion; en slinga som ständigt kommer att be om indata från användaren och reagera genom att ringa olika funktioner. I det här fallet kommer användaren att kunna vända färger på och av. Detta program är skriven så att den endast accepterar några förhand givna indata. Annars kommer den att göra ingenting och Visa ett meddelande om detta.

Återigen, inte ber vi för alla variabler med denna funktion, så hakparenteserna bo tom. "medan True" i huvudsak säger "medan programmet körs, göra detta", så det kommer att köras hela tiden tills vi sluta.

def main ():
samtidigt sant:
CMD = raw_input ("Välj ett alternativ:")

Vi definierar en ny variabel "cmd" för att använda senare och ange det till användarens indata. Det kommer också ständigt uppmanar användaren att välja ett alternativ.

Nu matchar en "om" uttalande som kommer att köras endast om användaren ingång exakt texten inom citattecken. Observera att här använder vi två "lika med" symboler. I Python, och faktiskt de flesta språk används en enda "lika med" för att ändra värdet för en variabel medan dubbel används för att jämföra huruvida variabelvärden matcha varandra.

om cmd == "röd":
redOn()

"elif" står för "annars, om". Detta nubb på det tidigare uttalandet om "om" och lägger till nya parametrar, vilket tillåter oss att skapa en kedja av "annars, om" uttalanden lätt.

Elif cmd == "röd off":
redOff()

Elif cmd == "green på":
greenOn()

Elif cmd == "gröna"
greenOff()

Elif cmd == "blå på":
blueOn()

Elif cmd == "blå":
blueOff()

Elif cmd == "gula på":
yellowOn()

Elif cmd == "gula":
yellowOff()

Elif cmd == "cyan på":
cyanOn()

Elif cmd == "cyan off":
cyanOff()

Elif cmd == "magenta på":
magentaOn()

Elif cmd == "magenta off":
magentaOff()

Elif cmd == "vit på":
whiteOn()

Elif cmd == "vit":
whiteOff()

annat:
skriva ut ("inte ett giltigt kommando.")

returnera

Med vår senaste "else" uttalande, om användaren försöker mata in något annat än en av de kommandon som anges ovan, kommer att det tala om för användaren att det är ett ogiltigt kommando. Den sista funktionen behöver är att "återvända" så att programmet vet när du ska slinga.

Main)

Detta är den sista raden i vår kod. När programmet körs, kommer att denna linje kalla den huvudsakliga funktionen som vi bara definierade och slingan kommer att fastställas.

Se Steg
Relaterade Ämnen

Android skjutreglaget för att styra Arduino RGB LED

Detta är verkligen ett roligt projekt istället för att kontrollera RGB ledde från potentiometern kan du styra den från android app, android app för detta projekt skapades med MIT app inventor, där du kan flytta varje reglage som har tilldelats till R...

Styra en RGB LED-matris med Android och IOIO

Produktversion av detta projekt finns på http://ledpixelart.com ***En Android kontrollerade interaktiva mirror. Kör olika Android apps, visar interaktiva spegeln bilder, löpande text, enkla spel och video som strömmas från en Android-enhet via Blueto...

Hur man styr en RGB LED Strip - Arduino handledning

I denna tutorial använder vi en remsa med 8 RGB lysdioder med Arduino uno styrelsen. Vi kommer använda den Adafruit NeoPixel bibliotek för att ändra färg på varje ledde.Låt oss komma igång!Steg 1: Vad du behöverFör detta projekt behöver du:Arduino un...

SPELA med parallell PORT (gör din egen GUI med TURBO C att styra din ROBOT

Detta instructable är en del av min bok leka med parallellporten. på detta instructable kommer vi kommer att lära sig om Turbo c kommunikation med parallellporten. låter start...del krävs1. LED (lysdiod)2. hoppare ledningar3. bröd styrelse4. parallel...

Med relä styrelser att styra linjära manöverdon

I detta Instructable kommer vi att lära hur man använder relay styrelser för att styra linjära manöverdon. Alla reläer agera likadant, den enda skillnaden är hur många är på bordet.Fyra relär kan kombineras med styrelsen MegaMoto kontrollen så att st...

Puzzlebox bana: Med en Arduino att styra en infraröd helikopter

i detta Instructable kommer vi att förklara hur IR signaler används av en fjärrkontroll att styra en leksak eller enhet, sedan Visa hur en enkel krets kan läggas till en Arduino att fungera samma enhet genom fri, öppen källkod.Detta dokument ingår i...

Hur: Skapa en Android App med Android studion att styra LED

Detta är en steg för steg handledning för att göra en android apk via bluetooth.Innan start kodning,Ladda ner Android Studio IDE och uppdatera Java. Java och C kunskaper i programmering hjälper. Denna ska tutorial förklarar inte Java programmering. O...

RGB LED Tutorial (med en Arduino) (RGBL)

Lysdioder är bra. Men med alla projekt man kommer till en punkt där blinkande inte räcker. För dessa fall RGB (röd, grön, blå) är LED svaret.Med en RGB LED du kommer att kunna producera någon färg lyser ditt hjärta önskar.På första använder en RGB LE...

Justerbar RGB LED kontrolleras med en Arduino

detta projekt använder en Arduino Duo R3 och 3 knappar för att styra en RGB LED.1. knappen väljer vilken färg RGB LED du vill justera. De andra 2 knapparna kan du justera ljusstyrkan på den färgen antingen uppåt eller nedåt.Det finns 3 gröna lysdiode...

Styra RGB LED med Amarino Nano 1,0

Vad är Amarino Nano 1.0Detta är min nya DIY kit för Android-Arduino kommunikation via Bluetooth.Amarino Nano särskilt använder Arduino Nano, så jag använde titeln som "Nano". Det är en mycket enkel kit för att testa de flesta av funktionerna i A...

Att göra en RGB LED färg Slider med kala färg

I den här guiden kommer vi att bygga en fysisk RGB (röd, grön, blå) LED (light emitting diode) färg mixer med Kala Konduktiv Paint. Varje RGB LED har tre inre lysdioder (LED) för varje färger - röd, grön och blå. Främja är där en ledning att ansluta...

Raspberry Pi spektrumanalysator med RGB LED Strip och Python

söker ett första projekt att prova på en Raspberry Pi, jag men vad bättre än en spektrumanalysator? (Denna display är felaktigt kallas som en grafisk equalizer--låt oss ändra ljudet, inte Visa det)Jag kunde få det gör 2048pt FFTs och avkodning mp3s i...

RGB-Led klocka med Bluetooth Smart

Detta instructable visar hur du använder en Cypress-BLE-Devkit för att bygga en RGB-LED-klocka.Du behöver endast mycket få saker:RGB-LED-Strip med 30 eller 60 WS2812b-lysdioder.en grid-stil dator ombordnågra pins pin-header och lite tråd.en 5V kraftk...

RGB LED Snowboard med Arduino Uno R3

Detta instructable förklarar hur man styr en RGB LED strip med en Arduino. I det här fallet monteras LED strip en snowboard. RGB (röd grön blå) lysdioder har förmågan att visa en mängd olika färger baserat på slå på och av röd, grön och blå lysdioder...

Kontroll en RGB LED med din iDevice!

i den här självstudiekursen får du lära dig att styra och RGB ledde med din iDevice (Ipod, Iphone, Ipad) använder "TouchOSC" och behandling tillsammans med oscp5 biblioteket.Du behöver:-En RGB LED, gemensam katod (negativ)-En Arduino eller Ardui...

Liten färg Mixer - en konstant ström, 3W RGB LED med indikator för låg batterinivå och polymorph diffuser

Styra en RGB LED är ett enkelt och vanligt mikrokontroller projekt, ofta nästa projekt gjort efter blinkande och blekning en LED.För att göra det mer intressant, byggde jag den med en ATtiny13, en av de minsta och enklaste AVRs, som krävde "high-volt...

RGB LED Strip krets med Arduino

Detta Instructable omfattar montering av en krets kan PWM-ning (puls bredd modulerande) en 9-12v RGB LED strip och programmering en Arduino att cykla genom en rad olika färger. Jag kommer att diskutera hur man montera en transistor till en kylfläns &...

Hur man styr en RGB ledde med en Arduino

I detta Instructable, kommer jag att visa dig hur man styr en RGB LED med en Arduino.För att slutföra detta projekt, behöver du:1 x Arduino (jag använder Arduino Uno R3)1 x RGB LED3 x 150-220 ohm motstånd4 x hoppare ledningar1 x skärbräda1 x dator me...

Kontroll RGB LED med arduino och bearbetning.

Jag kommer idag berätta hur man styr en RGB LED med hjälp av Arduino och bearbetning språk. Detta är min första instructable Vänligen låt mig veta om jag kunde något förbättra och om du har någon form av frågor lämna dem i kommentarrutan, jag skulle...