Nota
Ciao, benvenuto nella community di SunFounder per gli appassionati di Raspberry Pi, Arduino e ESP32 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 affronta sfide tecniche con l’aiuto della nostra community e del nostro team.
Impara e Condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e alle anteprime esclusive.
Sconti Speciali: Approfitta di sconti esclusivi sui nostri ultimi prodotti.
Promozioni Festive e Giveaway: Partecipa a giveaway e promozioni durante le festività.
👉 Sei pronto a esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!
4.1.8 Indicatore di Batteria
Nota
A seconda della versione del tuo kit, identifica se hai ADC0834 o MCP3008 e procedi con la sezione corrispondente.
Introduzione
In questo progetto, realizzeremo un dispositivo indicatore di batteria che può visualizzare visivamente il livello di carica della batteria sul Bargraph LED.
Componenti Necessari
In questo progetto, ci servono i seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
ELEMENTI INCLUSI NEL KIT |
LINK |
|---|---|---|
Kit Raphael |
337 |
Puoi anche acquistare i componenti separatamente dai link qui sotto.
INTRODUZIONE AI COMPONENTI |
LINK D’ACQUISTO |
|---|---|
- |
|
- |
Schema Elettrico
T-Board Name |
physical |
wiringPi |
BCM |
GPIO17 |
Pin 11 |
0 |
17 |
GPIO18 |
Pin 12 |
1 |
18 |
GPIO27 |
Pin 13 |
2 |
27 |
GPIO25 |
Pin 22 |
6 |
25 |
GPIO12 |
Pin 32 |
26 |
12 |
GPIO16 |
Pin 36 |
27 |
16 |
GPIO20 |
Pin 38 |
28 |
20 |
GPIO21 |
Pin 40 |
29 |
21 |
GPIO5 |
Pin 29 |
21 |
5 |
GPIO6 |
Pin 31 |
22 |
6 |
GPIO13 |
Pin 33 |
23 |
13 |
GPIO19 |
Pin 35 |
24 |
19 |
GPIO26 |
Pin 37 |
25 |
26 |
Procedure Sperimentali
Passo 1: Costruisci il circuito.
Passo 2: Accedi alla cartella del codice.
cd ~/raphael-kit/python-pi5
Passo 3: Esegui il file eseguibile.
sudo python3 4.1.11_BatteryIndicator_zero.py
Dopo l’esecuzione del programma, collega separatamente un cavo di uscita al 3° pin di ADC0834 e al GND, e poi collegali ai due poli di una batteria. Vedrai che il corrispondente LED sul Bargraph LED si accenderà per visualizzare il livello di potenza (intervallo di misurazione: 0-5V).
Avvertimento
Se viene visualizzato l’errore RuntimeError: Cannot determine SOC peripheral base address, fare riferimento a If gpiozero doesn’t work..
Code
Nota
Puoi Modificare/Resettare/Copiare/Eseguire/Fermare il codice qui sotto. Ma prima devi accedere al percorso del codice sorgente come raphael-kit/python-pi5. Dopo aver modificato il codice, puoi eseguirlo direttamente per vedere l’effetto.
#!/usr/bin/env python3
from gpiozero import LED
import ADC0834
import time
# Elenco dei pin GPIO a cui sono collegati i LED
ledPins = [25, 12, 16, 20, 21, 5, 6, 13, 19, 26]
# Inizializza gli oggetti LED per ogni pin nella lista
leds = [LED(pin) per pin in ledPins]
# Configura il modulo ADC0834
ADC0834.setup()
def LedBarGraph(value):
# Spegni tutti i LED
for i in range(10):
leds[i].off()
# Accendi i LED fino al valore specificato
for i in range(value):
leds[i].on()
try:
# Ciclo principale per aggiornare continuamente il Bargraph LED
while True:
# Leggi il valore analogico da ADC0834
analogVal = ADC0834.getResult()
# Converti il valore analogico in livello del Bargraph LED
LedBarGraph(int(analogVal/25))
except KeyboardInterrupt:
# Spegni tutti i LED quando il programma viene interrotto
for i in range(10):
leds[i].off()
Spiegazione del Codice
Questa sezione importa le librerie necessarie.
gpiozeroserve per controllare i LED,ADC0834per interfacciarsi con il modulo ADC etimeper le operazioni legate al tempo.#!/usr/bin/env python3 from gpiozero import LED import ADC0834 import time
Definisce i pin GPIO a cui sono collegati i LED e inizializza un array di oggetti LED per ciascun pin. Questo consente un facile controllo di ciascun LED nell’array.
# Elenco dei pin GPIO a cui sono collegati i LED ledPins = [25, 12, 16, 20, 21, 5, 6, 13, 19, 26] # Inizializza gli oggetti LED per ogni pin nella lista leds = [LED(pin) per pin in ledPins]
Inizializza il modulo ADC0834 per la conversione analogico-digitale.
# Configura il modulo ADC0834 ADC0834.setup()
Questa funzione spegne tutti i LED e poi accende un numero di LED in base al valore di input, creando efficacemente una rappresentazione grafica a barre.
def LedBarGraph(value): # Spegni tutti i LED for i in range(10): leds[i].off() # Accendi i LED fino al valore specificato for i in range(value): leds[i].on()
Legge continuamente il valore analogico da ADC0834 e aggiorna il Bargraph LED in base a questo valore. Il valore analogico viene ridimensionato su una scala da 0 a 10 per i 10 LED.
try: # Ciclo principale per aggiornare continuamente il Bargraph LED while True: # Leggi il valore analogico da ADC0834 analogVal = ADC0834.getResult() # Converti il valore analogico in livello del Bargraph LED LedBarGraph(int(analogVal/25))
Assicura che tutti i LED siano spenti quando il programma viene interrotto (ad esempio, premendo Ctrl+C).
except KeyboardInterrupt: # Spegni tutti i LED quando il programma viene interrotto for i in range(10): leds[i].off()