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.3 Grafico a Barre LED

Introduzione

In questo progetto, illumineremo sequenzialmente le luci sul grafico a barre LED.

Componenti Necessari

In questo progetto, abbiamo bisogno dei seguenti componenti.

../_images/list_led_bar.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

Grafico a Barre LED

-

Schema Elettrico

T-Board Name

physical

wiringPi

BCM

GPIO17

Pin 11

0

17

GPIO18

Pin 12

1

18

GPIO27

Pin 13

2

27

GPIO22

Pin 15

3

22

GPIO23

Pin 16

4

23

GPIO24

Pin 18

5

24

GPIO25

Pin 22

6

25

SDA1

Pin 3

8

2

SCL1

Pin 5

9

3

SPICE0

Pin 24

10

8

../_images/schematic_led_bar.png

Procedure Sperimentali

Passo 1: Costruisci il circuito.

Nota

Presta attenzione alla direzione quando colleghi i componenti. Se li colleghi al contrario, non si accenderanno.

../_images/image66.png

Passo 2: Vai nella cartella del codice.

cd ~/raphael-kit/python/

Passo 3: Esegui il file eseguibile.

sudo python3 1.1.3_LedBarGraph.py

Dopo l’esecuzione del codice, vedrai che i LED sul grafico a barre si accenderanno e spegneranno regolarmente.

Codice

Nota

Puoi Modificare/Reimpostare/Copiare/Eseguire/Interrompere il codice qui sotto. Ma prima devi accedere al percorso del codice come raphael-kit/python. Dopo aver modificato il codice, puoi eseguirlo direttamente per vedere l’effetto.

import RPi.GPIO as GPIO
import time

ledPins = [11, 12, 13, 15, 16, 18, 22, 3, 5, 24]

def oddLedBarGraph():
    for i in range(5):
        j = i*2
        GPIO.output(ledPins[j],GPIO.LOW)
        time.sleep(0.3)
        GPIO.output(ledPins[j],GPIO.HIGH)

def evenLedBarGraph():
    for i in range(5):
        j = i*2+1
        GPIO.output(ledPins[j],GPIO.LOW)
        time.sleep(0.3)
        GPIO.output(ledPins[j],GPIO.HIGH)

def allLedBarGraph():
    for i in ledPins:
        GPIO.output(i,GPIO.LOW)
        time.sleep(0.3)
        GPIO.output(i,GPIO.HIGH)

def setup():
    GPIO.setwarnings(False)
    GPIO.setmode(GPIO.BOARD)        # Numbers GPIOs by physical location
    for i in ledPins:
        GPIO.setup(i, GPIO.OUT)   # Set all ledPins' mode is output
        GPIO.output(i, GPIO.HIGH) # Set all ledPins to high(+3.3V) to off led

def loop():
    while True:
        oddLedBarGraph()
        time.sleep(0.3)
        evenLedBarGraph()
        time.sleep(0.3)
        allLedBarGraph()
        time.sleep(0.3)

def destroy():
    for pin in ledPins:
        GPIO.output(pin, GPIO.HIGH)    # turn off all leds
    GPIO.cleanup()                     # Release resource

if __name__ == '__main__':     # Program start from here
    setup()
    try:
        loop()
    except KeyboardInterrupt:  # When 'Ctrl+C' is pressed, the program destroy() will be  executed.
        destroy()

Spiegazione del Codice

ledPins = [11, 12, 13, 15, 16, 18, 22, 3, 5, 24] Crea un array e lo assegna ai numeri di pin corrispondenti al grafico a barre LED (11, 12, 13, 15, 16, 18, 22, 3, 5, 24) e l’array verrà utilizzato per controllare i LED.

def oddLedBarGraph():
    for i in range(5):
        j = i*2
        GPIO.output(ledPins[j],GPIO.LOW)
        time.sleep(0.3)
        GPIO.output(ledPins[j],GPIO.HIGH)

Accende i LED in posizione dispari del grafico a barre LED uno dopo l’altro.

def evenLedBarGraph():
    for i in range(5):
        j = i*2+1
        GPIO.output(ledPins[j],GPIO.LOW)
        time.sleep(0.3)
        GPIO.output(ledPins[j],GPIO.HIGH)

Accende i LED in posizione pari del grafico a barre LED uno dopo l’altro.

def allLedBarGraph():
    for i in ledPins:
        GPIO.output(i,GPIO.LOW)
        time.sleep(0.3)
        GPIO.output(i,GPIO.HIGH)

Accende tutti i LED del grafico a barre uno dopo l’altro.

Immagine del Fenomeno

../_images/image67.jpeg