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.

../_images/blinking_led_list.png

È sicuramente comodo acquistare un kit completo, ecco il link:

Nome

ARTICOLI IN QUESTO KIT

LINK

Kit Raphael

337

Raphael Kit

Puoi anche acquistarli separatamente dai link qui sotto.

INTRODUZIONE AI COMPONENTI

LINK PER L’ACQUISTO

Scheda di estensione GPIO

ACQUISTA

Breadboard

ACQUISTA

Cavi Jumper

ACQUISTA

Resistore

ACQUISTA

LED

ACQUISTA

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

../_images/image48.png

Procedure Sperimentali

Passo 1: Costruisci il circuito.

../_images/image49.png

Passo 2: Vai alla cartella del codice e avvialo.

  1. 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.

  1. 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

../_images/image54.jpeg