Nota

Ciao, benvenuto nella Community su Facebook per gli appassionati di SunFounder Raspberry Pi, Arduino e ESP32! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.

Perché unirti a noi?

  • Supporto esperto: Risolvi i problemi post-vendita e le 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 dei nuovi prodotti e anteprime esclusive.

  • Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni e Giveaway Festivi: Partecipa a concorsi e promozioni in occasione delle festività.

👉 Pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!

3.1.5 Indicatore di Batteria

Nota

../_images/mcp3008_and_adc0834.jpg

A seconda della versione del kit, identifica se hai ADC0834 o MCP3008 e procedi con la sezione corrispondente.

Introduzione

In questo corso, realizzeremo un dispositivo indicatore di batteria che può visualizzare visivamente il livello di carica su un Bargraph LED.

Avvertimento

Non utilizzare componenti della batteria che superano i 3,3V per evitare sovraccarichi che potrebbero danneggiare il chip o il Raspberry Pi.

Componenti

../_images/list_Battery_Indicator1.png

Schema di Collegamento

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_one51.png

Procedure Sperimentali

Passo 1: Costruisci il circuito.

../_images/image2481.png

Passo 2: Accedi alla cartella del codice.

cd ~/davinci-kit-for-raspberry-pi/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 avviato il programma, collega il terzo pin di ADC0834 al GND e collegali ai due poli della batteria. Vedrai i LED corrispondenti accendersi sul Bargraph LED, visualizzando il livello della batteria (intervallo di misurazione: 0-5V).

Nota

Se non funziona dopo l’esecuzione o compare un messaggio di errore: "wiringPi.h: No such file or directory", consulta Il codice C non funziona?.

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 controlla l’accensione o lo spegnimento dei 10 LED sul Bargraph LED. Inizialmente, impostiamo i 10 LED su un livello alto per spegnerli, quindi determiniamo quanti LED accendere in base al 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++){       //make led pins' mode is output
        pinMode(pins[i], OUTPUT);
        digitalWrite(pins[i],HIGH);
    }
    while(1){
        analogVal = get_ADC_Result(0);
        LedBarGraph(analogVal/25);
        delay(100);
    }
    return 0;
}

La variabile analogVal produce valori tra 0-255 al variare della tensione (0-5V). Ad esempio, se viene rilevata una tensione di 3V su una batteria, il valore corrispondente 152 verrà visualizzato sul voltmetro.

I 10 LED sul Bargraph LED visualizzano la lettura di analogVal. Poiché 255/10=25, ogni incremento di 25 del valore analogico accende un LED in più. Ad esempio, se analogVal=150 (circa 3V), si accenderanno 6 LED.