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

../_images/mcp3008_and_adc0834.jpg

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.

../_images/list_Battery_Indicator.png

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

Nome

ELEMENTI IN QUESTO KIT

LINK

Kit Raphael

337

Raphael Kit

Puoi anche acquistarli separatamente dai link sottostanti.

INTRODUZIONE COMPONENTE

LINK PER L’ACQUISTO

Scheda di estensione GPIO

ACQUISTA

Breadboard

ACQUISTA

Cavi Jumper

ACQUISTA

Resistore

ACQUISTA

Grafico a Barre LED

-

ADC0834

-

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

../_images/Schematic_three_one5.png

Procedure sperimentali

Passo 1: Costruisci il circuito.

../_images/image248.png

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

../_images/image249.jpeg