Sommario:
- Passaggio 1: cosa ti servirà
- Passaggio 2: costruisci il tuo circuito
- Passaggio 3: creare uno script per controllare e testare i LED
- Passaggio 4: aggiungere flessibilità utilizzando parametri e istruzioni condizionali
Video: Controllo di più LED con Python e i pin GPIO del tuo Raspberry Pi: 4 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Questo Instructable dimostra come controllare più pin GPIO sul tuo RaspberryPi per alimentare 4 LED. Ti introdurrà anche ai parametri e alle istruzioni condizionali in Python.
Il nostro precedente Instructable Utilizzo dei pin GPIO del Raspberry Pi per controllare un LED dimostra come accendere e spegnere un singolo LED utilizzando il comando GPIO.output. Questo Instructable si basa su quella conoscenza per insegnarti come ottenere un maggiore controllo sul tuo circuito.
Passaggio 1: cosa ti servirà
- Un RaspberryPi con Raspbian già installato. Dovrai anche essere in grado di accedere al Pi utilizzando un monitor, un mouse e una tastiera o tramite Desktop remoto. Puoi usare qualsiasi modello di Raspberry Pi. Se hai uno dei modelli Pi Zero, potresti voler saldare alcuni pin di intestazione alla porta GPIO.
- LED rosso, blu, giallo e verde
- Un tagliere di prototipazione senza saldatura
- 4 resistenze da 330 ohm
- Alcuni ponticelli maschio-femmina
Passaggio 2: costruisci il tuo circuito
Costruisci il circuito sopra sulla tua breadboard assicurandoti che nessuno dei cavi dei componenti tocchi e che i LED siano collegati nel modo corretto.
Come identifichi i cavi positivo e negativo (la polarità) sui tuoi LED? Se guardi da vicino un LED, vedrai che ha due piccoli pezzi di metallo all'interno dell'involucro colorato. Questi sono chiamati anodo e catodo. Il catodo è il più grande dei due ed è collegato anche al cavo negativo del LED.
Dopo aver controllato il tuo circuito, collega i cavi jumper ai pin GPIO del tuo Raspberry Pi seguendo lo schema sopra.
Passaggio 3: creare uno script per controllare e testare i LED
Sul tuo Raspberry Pi, apri IDLE (Menu > Programmazione > Python 2 (IDLE)).
Apri un nuovo progetto vai su File > Nuovo file. Quindi digita (o copia e incolla) il seguente codice:
importa RPi. GPIO come GPIO
ora di importazione 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. uscita(23, falso)
Salva il tuo progetto come multilights.py (File > Salva con nome) nella cartella Documenti Raspberry Pis.
Sul tuo Raspberry Pi apri Terminale (Menu> Accessori> Terminale) e vai alla cartella Documenti digitando quanto segue:
cd /home/pi/Documenti
Ora puoi eseguire il tuo nuovo script digitando quanto segue:
python multilights.py
Le luci faranno a turno per accendersi e spegnersi. Lo script sopra utilizza il comando time.sleep per creare una pausa tra ogni passaggio, facendo in modo che ogni luce rimanga accesa per 3 secondi e attenda 1 secondo prima di accendere la luce successiva.
Passaggio 4: aggiungere flessibilità utilizzando parametri e istruzioni condizionali
Usando i parametri e le istruzioni condizionali possiamo rendere lo script di cui sopra molto più flessibile.
Un parametro consente di memorizzare un valore che è possibile utilizzare in seguito nello script. I tipi più comuni di valori sono stringhe (testo), interi (numeri interi) o float (numeri decimali).
Un'istruzione condizionale determinerà se un segmento di codice deve essere eseguito o meno controllando se una determinata condizione è soddisfatta. La condizione può anche coinvolgere parametri.
Apri IDLE sul tuo Raspberry Pi e apri un nuovo progetto (File> Nuovo file). Quindi digitare quanto segue. Fare attenzione a garantire che tutti i rientri (tab) siano inclusi utilizzando il tasto tab:
importa RPi. GPIO come GPIO
import time from 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 whatled=="a": GPIO.output(LEDa, False) if whatled=="b": GPIO.output(LEDb, False) if whatled=="c": GPIO.output(LEDc, False) if whatled=="d": GPIO.output(LEDd, False) if whatled=="all": GPIO.output(LEDa, False) GPIO.output(LEDb, False) GPIO. output(LEDc, False) GPIO.output(LEDd, False) if ledaction=="on": if whatled=="a": GPIO.output(LEDa, True) if whatled=="b": GPIO.output(LEDb, True) if whatled=="c": GPIO.output(LEDc, True) if whatled=="d": GPIO.output(LEDd, True) if whatled=="all": GPIO.output(LEDa, Vero) GPIO.output(LEDb, Vero) GPIO.output(LEDc, Vero) GPIO.output(LEDd, Vero)
Salva il tuo progetto come controllight.py (File > Salva con nome) nella cartella Documenti. Ora apri Terminale (Menu > Accessori > Terminale) e digita il seguente comando:
python controllight.py b on
Il secondo LED dovrebbe accendersi. Ora digita quanto segue:
python controllight.py b spento
Il secondo LED dovrebbe spegnersi.
Nelle righe 5, 6, 7 e 8, creiamo i parametri LEDa, LEDb, LEDc e LEDd per memorizzare quale pin GPIO abbiamo collegato a quale LED. Ciò ci consente di utilizzare pin GPIO alternativi senza dover apportare modifiche sostanziali allo script.
Ad esempio, se dovessimo connettere il primo cavo LED al Pin 3 (GPIO 2), dovremmo solo cambiare la linea 5 con la seguente:
LEDa=2
La riga 4 memorizza i valori digitati dopo controllight.py nei parametri whatled (c) e ledaction (on). Lo script utilizza quindi questi parametri, insieme a una serie di istruzioni condizionali per decidere quale LED controllare e se accenderlo o spegnerlo.
La riga 16 (if ledaction=="on":) è un'istruzione condizionale. Le righe rientrate che seguono questa istruzione verranno eseguite solo se la condizione dell'istruzione è soddisfatta. In questo scenario, la condizione è che ledaction contenga il testo su.
Leggendo le altre istruzioni condizionali dello script, puoi prevedere cosa accadrà quando digiti il seguente comando in Terminale?
python controllight.py tutto attivo
Perché non provarci e pubblicare la tua risposta nella sezione commenti qui sotto.
Consigliato:
Controllo gestuale semplice - Controlla i tuoi giocattoli RC con il movimento del tuo braccio: 4 passaggi (con immagini)
Semplice controllo dei gesti - Controlla i tuoi giocattoli RC con il movimento del tuo braccio: benvenuto nel mio 'ible' #45. Qualche tempo fa ho realizzato una versione RC completamente funzionante di BB8 usando parti di Lego Star Wars… https://www.instructables.com/id/Whats-Inside-My-R…Quando ho visto quanto fosse bello la Force Band realizzata da Sphero, ho pensato: "Ok, io c
Controlla il layout del tuo modello di treno con il tuo cellulare!: 11 passaggi (con immagini)
Controlla il layout del tuo modello di treno con il tuo telefono cellulare!: Il controllo di un layout di modello di treno con un acceleratore cablato e controller di affluenza potrebbe essere un buon inizio per i principianti, ma pongono un problema di non portabilità. Inoltre, i controller wireless disponibili sul mercato possono controllare solo alcune locomotive
Arduino più economico -- Arduino più piccolo -- Arduino Pro Mini -- Programmazione -- Arduino Neno: 6 passaggi (con immagini)
Arduino più economico || Arduino più piccolo || Arduino Pro Mini || Programmazione || Arduino Neno:……………………………. ISCRIVITI al mio canale YouTube per altri video……. .Questo progetto riguarda come interfacciare un arduino più piccolo ed economico di sempre. L'arduino più piccolo ed economico è arduino pro mini. È simile ad arduino
L'auto più piccola al mondo con controllo elettronico della stabilità!: 5 passaggi (con immagini)
L'auto più piccola del mondo con controllo elettronico della stabilità!: Hai una di quelle piccole auto per lattine di Coca Cola? E la sua controllabilità fa schifo? Allora ecco la soluzione: Arduino 2.4GHz "Micro RC" modifica del controllo proporzionale!Caratteristiche: controllo proporzionale Arduino "Micro RC" conversione
Riciclaggio del tuo vecchio interruttore dimmer come controllo della temperatura variabile per il tuo saldatore: 7 passaggi
Riciclaggio del tuo vecchio interruttore dimmer come controllo della temperatura variabile per il tuo saldatore: ho visto un sacco di controllo della temperatura variabile professionale per il saldatore, ma troppo costoso. Quindi ne ho ricavato uno da un vecchio interruttore dimmer, presa, piastra e spina che erano già spazzatura e una vecchia scatola di interruttori in PVC fornita con esso e così