Note

Bonjour et bienvenue dans la communauté des passionnés de SunFounder Raspberry Pi, Arduino et ESP32 sur Facebook ! Plongez dans l’univers de Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.

Pourquoi nous rejoindre ?

  • Support d’experts : Résolvez les problèmes après-vente et relevez vos défis techniques grâce à l’aide de notre communauté et de notre équipe.

  • Apprenez et Partagez : Échangez des astuces et des tutoriels pour perfectionner vos compétences.

  • Aperçus exclusifs : Bénéficiez d’un accès anticipé aux nouvelles annonces de produits et aux avant-premières.

  • Réductions spéciales : Profitez de réductions exclusives sur nos nouveaux produits.

  • Promotions festives et concours : Participez à des concours et à des promotions lors des fêtes.

👉 Prêt à explorer et à créer avec nous ? Cliquez sur [Ici] et rejoignez-nous dès aujourd’hui !

3.1.5 Indicateur de Batterie

Note

../_images/mcp3008_and_adc0834.jpg

Selon la version de votre kit, identifiez si vous disposez du ADC0834 ou du MCP3008 et suivez la section correspondante.

Introduction

Dans ce cours, nous allons créer un indicateur de batterie capable d’afficher visuellement le niveau de charge sur le bargraphe LED.

Composants

../_images/list_Battery_Indicator1.png

Schéma de câblage

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

Procédures expérimentales

Étape 1 : Construisez le circuit.

../_images/image2481.png

Étape 2 : Accédez au dossier du code.

cd ~/davinci-kit-for-raspberry-pi/c/3.1.5/

Étape 3 : Compilez le code.

gcc 3.1.5_BatteryIndicator.c -lwiringPi

Étape 4 : Exécutez le fichier exécutable.

sudo ./a.out

Lorsque le programme est lancé, connectez le 3e broche de l’ADC0834 et le GND séparément à chaque pôle de la batterie. Le bargraphe LED affichera le niveau de la batterie correspondant (plage de mesure : 0-5V).

Note

Si cela ne fonctionne pas après l’exécution, ou s’il y a un message d’erreur indiquant : « wiringPi.h : Aucun fichier ou répertoire de ce type », veuillez consulter Le code C ne fonctionne pas ?.

Explication du Code

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);
    }
}

Cette fonction contrôle l’allumage ou l’extinction des 10 LEDs du bargraphe. Initialement, les 10 LEDs sont éteintes (niveau HIGH), puis le nombre de LEDs allumées est déterminé en fonction de la valeur analogique reçue.

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;
}

analogVal génère des valeurs (0-255) en fonction des variations de tension (0-5V). Par exemple, si une batterie de 3V est détectée, la valeur correspondante de 152 est affichée sur le voltmètre.

Les 10 LEDs du bargraphe sont utilisées pour afficher les lectures de analogVal. 255/10=25, donc chaque augmentation de 25 du analogVal allume une LED supplémentaire. Par exemple, si analogVal = 150 (environ 3V), 6 LEDs seront allumées.