Nota
Ciao, benvenuto nella SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 con altri appassionati.
Perché unirti?
Supporto esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.
Impara e condividi: Scambia suggerimenti e tutorial per migliorare le tue competenze.
Anteprime esclusive: Ottieni accesso anticipato a nuovi annunci di prodotti e anteprime.
Sconti speciali: Goditi sconti esclusivi sui nostri prodotti più recenti.
Promozioni festive e omaggi: Partecipa a concorsi e promozioni festive.
👉 Pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi!
3.1.5 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 su un LED Bargraph.
Componenti necessari
Per questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
|---|---|---|
Kit Raphael |
337 |
Puoi anche acquistarli separatamente dai link sottostanti.
INTRODUZIONE COMPONENTE |
LINK PER L’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: Vai alla cartella del codice.
cd ~/raphael-kit/c/3.1.5/
Passo 3: Compila il codice.
gcc 3.1.5_BatteryIndicator.c -lwiringPi
Passo 4: Esegui il file eseguibile.
sudo ./a.out
Dopo aver eseguito il programma, collega separatamente il 3° pin dell’ADC0834 e il GND a due poli di una batteria. Potrai vedere il corrispondente LED del LED Bargraph accendersi per visualizzare il livello di carica (intervallo di misurazione: 0-5V).
Nota
Se non funziona dopo l’esecuzione, o appare un messaggio di errore: "wiringPi.h: No such file or directory", consulta Installazione e verifica di WiringPi.
Spiegazione del Codice
void LedBarGraph(int value){
for(int i=0;i<10;i++){
digitalWrite(pins[i],HIGH);
}
for(int i=0;i<value;i++){
digitalWrite(pins[i],LOW);
}
}
Questa funzione serve per controllare l’accensione o lo spegnimento dei 10 LED del LED Bargraph. Inizialmente, i 10 LED vengono impostati su livelli alti per spegnerli, quindi decidiamo quanti LED accendere cambiando il valore analogico ricevuto.
int main(void)
{
uchar analogVal;
if(wiringPiSetup() == -1){ //when initialize wiring failed,print messageto screen
printf("setup wiringPi failed !");
return 1;
}
pinMode(ADC_CS, OUTPUT);
pinMode(ADC_CLK, OUTPUT);
for(int i=0;i<10;i++){ //imposta i pin dei led come output
pinMode(pins[i], OUTPUT);
digitalWrite(pins[i],HIGH);
}
while(1){
analogVal = get_ADC_Result(0);
LedBarGraph(analogVal/25);
delay(100);
}
return 0;
}
analogVal genera valori (0-255) con variazioni di tensione (0-5V), ad es., se viene rilevato 3V su una batteria, il valore corrispondente 152 viene visualizzato sul voltmetro.
I 10 LED sul LED Bargraph vengono utilizzati per visualizzare i valori di analogVal. 255/10=25, quindi ogni 25 incrementi del valore analogico accendono un LED in più, ad esempio, se “analogVal=150 (circa 3V), si accendono 6 LED”.
Immagine del fenomeno