Nota
Ciao, benvenuto nella SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché unirti a noi?
Supporto esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra comunità e del nostro team.
Impara e condividi: Scambia suggerimenti e tutorial per migliorare le tue competenze.
Anteprime esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e anteprime esclusive.
Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni festive e concorsi: Partecipa a concorsi e promozioni durante le festività.
👉 Sei pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!
1.1.1 LED Lampeggiante
Introduzione
In questo progetto, impareremo a far lampeggiare un LED tramite la programmazione. Attraverso le tue impostazioni, il LED può produrre una serie di fenomeni interessanti. Adesso, cominciamo.
Componenti Necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente comodo acquistare un kit completo, ecco il link:
Nome |
ARTICOLI IN QUESTO KIT |
LINK |
|---|---|---|
Kit Raphael |
337 |
Puoi anche acquistarli separatamente dai link qui sotto.
INTRODUZIONE AI COMPONENTI |
LINK PER L’ACQUISTO |
|---|---|
Schema Elettrico
In questo esperimento, collega una resistenza da 220Ω all’anodo (il pin lungo del LED), poi la resistenza ai 3,3 V, e collega il catodo (il pin corto) del LED al GPIO17 del Raspberry Pi. Pertanto, per accendere il LED, dobbiamo impostare GPIO17 al livello basso (0V). Possiamo ottenere questo fenomeno tramite la programmazione.
Nota
Pin11 si riferisce all’11° pin del Raspberry Pi da sinistra a destra, e i corrispondenti numeri di pin wiringPi e BCM sono mostrati nella tabella seguente.
Nella programmazione in C, consideriamo GPIO0 equivalente a 0 in wiringPi. Nel contesto del linguaggio Python, BCM 17 corrisponde a 17 nella colonna BCM della tabella seguente. Allo stesso tempo, essi corrispondono all’11° pin del Raspberry Pi, Pin 11.
T-Board Name |
physical |
wiringPi |
BCM |
GPIO17 |
Pin 11 |
0 |
17 |
Procedure Sperimentali
Passo 1: Costruisci il circuito.
Passo 2: Vai alla cartella del codice e avvialo.
Se usi uno schermo, ti consigliamo di seguire i seguenti passi.
Trova 1.1.1_BlinkingLed.py e fai doppio clic per aprirlo. Ora sei nel file.
Clicca su Run -> Run Module nella finestra e appariranno i seguenti contenuti.
Per interrompere l’esecuzione, fai semplicemente clic sul pulsante X in alto a destra per chiuderlo e tornerai al codice. Se modifichi il codice, prima di fare clic su Run Module (F5) devi salvarlo. Poi potrai vedere i risultati.
Se accedi al Raspberry Pi da remoto, digita il seguente comando:
cd ~/raphael-kit/python
Nota
Cambia directory al percorso del codice in questo esperimento tramite cd.
Passo 3: Esegui il codice
sudo python3 1.1.1_BlinkingLed.py
Nota
Qui «sudo» significa superuser do, e «python» indica di eseguire il file tramite Python.
Dopo l’esecuzione del codice, vedrai il LED lampeggiare.
Passo 4: Se vuoi modificare il file di codice 1.1.1_BlinkingLed.py, premi Ctrl + C
per interrompere l’esecuzione del codice. Poi digita il seguente comando per aprire 1.1.1_BlinkingLed.py:
nano 1.1.1_BlinkingLed.py
Nota
nano è uno strumento di editor di testo. Il comando viene utilizzato per aprire il file di codice 1.1.1_BlinkingLed.py con questo strumento.
Premi Ctrl+X per uscire. Se hai modificato il codice, apparirà un messaggio che
chiederà se vuoi salvare le modifiche. Digita Y (salva) o N (non salvare).
Poi premi Enter per uscire. Digita di nuovo nano 1.1.1_BlinkingLed.py per vedere l’effetto dopo la modifica.
Codice
Il seguente è il codice del programma:
Nota
Puoi Modificare/Reimpostare/Copiare/Eseguire/Interrompere il codice qui sotto. Ma prima, devi andare al percorso del codice come raphael-kit/python. Dopo aver modificato il codice, puoi eseguirlo direttamente per vedere l’effetto.
#!/usr/bin/env python3
import RPi.GPIO as GPIO
import time
LedPin = 17
def setup():
# Imposta le modalità GPIO su numerazione BCM
GPIO.setmode(GPIO.BCM)
# Imposta la modalità del LedPin come output e il livello iniziale su High (3,3 V)
GPIO.setup(LedPin, GPIO.OUT, initial=GPIO.HIGH)
# Definisce una funzione principale per il processo principale
def main():
while True:
print ('...LED ON')
# Accende il LED
GPIO.output(LedPin, GPIO.LOW)
time.sleep(0.5)
print ('LED OFF...')
# Spegne il LED
GPIO.output(LedPin, GPIO.HIGH)
time.sleep(0.5)
# Definisce una funzione destroy per pulire tutto dopo il termine dello script
def destroy():
# Spegne il LED
GPIO.output(LedPin, GPIO.HIGH)
# Libera le risorse
GPIO.cleanup()
# Se si esegue direttamente questo script, eseguire:
if __name__ == '__main__':
setup()
try:
main()
# Quando viene premuto 'Ctrl+C', verrà eseguita la funzione destroy().
except KeyboardInterrupt:
destroy()
Spiegazione del Codice
#!/usr/bin/env python3
Quando il sistema rileva questo, cercherà il percorso di installazione di python nelle
impostazioni dell’env, quindi chiamerà l’interprete corrispondente per completare
l’operazione. Serve a prevenire che l’utente non installi python nel percorso predefinito /usr/bin.
import RPi.GPIO as GPIO
In questo modo, importiamo la libreria RPi.GPIO e definiamo una variabile, GPIO, per sostituire RPI.GPIO nel codice seguente.
import time
Importa il pacchetto time, per utilizzare la funzione di ritardo nel programma seguente.
LedPin = 17
Il LED è collegato al GPIO17 della scheda di estensione a forma di T, cioè BCM 17.
def setup():
GPIO.setmode(GPIO.BCM)
GPIO.setup(LedPin, GPIO.OUT, initial=GPIO.HIGH)
Imposta la modalità del LedPin come output e il livello iniziale su High (3,3 V).
Ci sono due modi di numerare i pin IO su un Raspberry Pi all’interno di RPi.GPIO: numeri BOARD e numeri BCM. Nei nostri progetti, usiamo i numeri BCM. Devi configurare ogni canale che usi come input o output.
GPIO.output(LedPin, GPIO.LOW)
Imposta GPIO17 (BCM17) a 0V (livello basso). Poiché il catodo del LED è collegato a GPIO17, il LED si accenderà.
time.sleep(0.5)
Ritarda per 0,5 secondi. Qui, l’istruzione è la funzione di ritardo in linguaggio C, l’unità è il secondo.
def destroy():
GPIO.cleanup()
Definisce una funzione destroy per pulire tutto dopo il termine dello script.
if __name__ == '__main__':
setup()
try:
main()
# Quando viene premuto 'Ctrl+C', verrà eseguita la funzione destroy().
except KeyboardInterrupt:
destroy()
Questa è la struttura generale di esecuzione del codice. Quando il programma inizia a
essere eseguito, inizializza il pin eseguendo setup(), e poi esegue il codice nella
funzione main() per impostare il pin su livelli alti e bassi. Quando si preme Ctrl+C,
il programma eseguirà la funzione destroy().
Immagine del Fenomeno