Note
Bonjour et bienvenue dans la communauté SunFounder pour les passionnés de Raspberry Pi, Arduino et ESP32 sur Facebook ! Plongez au cœur de Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.
Pourquoi rejoindre ?
Support d’experts : Résolvez vos problèmes après-vente et vos défis techniques grâce à l’aide de notre communauté et de notre équipe.
Apprendre & Partager : Échangez des astuces et des tutoriels pour perfectionner vos compétences.
Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus exclusifs.
Réductions spéciales : Profitez de réductions exclusives sur nos nouveaux produits.
Promotions festives et concours : Participez à des concours et à des promotions spéciales pendant les 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
Introduction
Dans ce cours, nous allons fabriquer un dispositif indicateur de batterie qui peut afficher visuellement le niveau de charge sur un bargraphe LED.
Composants

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 |

Procédures expérimentales
Étape 1 : Construisez le circuit.

Pour les utilisateurs du langage C
É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
Après l’exécution du programme, connectez séparément la 3ème broche de l’ADC0834 et le GND à des fils de sortie, puis reliez-les aux deux pôles d’une batterie. Vous verrez que les LED correspondantes sur le bargraphe LED s’allument pour indiquer le niveau de charge (plage de mesure : 0-5V).
Note
Si cela ne fonctionne pas après l’exécution ou si un message d’erreur apparaît : "wiringPi.h: Aucun fichier ou dossier de ce type », veuillez vous référer à C code is not working?.
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 permet de contrôler l’allumage ou l’extinction des 10 LED du bargraphe LED. Nous commençons par envoyer un signal de niveau haut aux 10 LED pour les éteindre, puis nous décidons combien de LED seront allumées en fonction de la valeur analogique reçue.
int main(void)
{
uchar analogVal;
if(wiringPiSetup() == -1){ // Si l'initialisation de WiringPi échoue, afficher un message à l'écran
printf("setup wiringPi failed !");
return 1;
}
pinMode(ADC_CS, OUTPUT);
pinMode(ADC_CLK, OUTPUT);
for(int i=0;i<10;i++){ // Définir les broches des LED en mode sortie
pinMode(pins[i], OUTPUT);
digitalWrite(pins[i],HIGH);
}
while(1){
analogVal = get_ADC_Result(0);
LedBarGraph(analogVal/25);
delay(100);
}
return 0;
}
analogVal produit des valeurs (0-255) selon la variation de la tension (0-5V), par exemple, si une tension de 3V est détectée sur une batterie, la valeur correspondante
152 s’affiche sur le voltmètre.
Les 10 LED du bargraphe sont utilisées pour afficher les valeurs de analogVal. 255/10=25, donc chaque augmentation de 25 de la valeur analogique allume une LED supplémentaire, par exemple, si analogVal=150 (environ 3V), 6 LED s’allument.
Pour les utilisateurs du langage Python
Étape 2 : Accédez au dossier du code.
cd ~/davinci-kit-for-raspberry-pi/python/
Étape 3 : Exécutez le fichier exécutable.
sudo python3 3.1.5_BatteryIndicator.py
Après l’exécution du programme, connectez séparément la 3ème broche de l’ADC0834 et le GND à des fils de sortie, puis reliez-les aux deux pôles d’une batterie. Vous verrez que les LED correspondantes sur le bargraphe LED s’allument pour indiquer le niveau de charge (plage de mesure : 0-5V).
Code
Note
Vous pouvez modifier/réinitialiser/copier/exécuter/arrêter le code ci-dessous. Mais avant cela, vous devez vous rendre sur le chemin du code source comme davinci-kit-for-raspberry-pi/python
.
import RPi.GPIO as GPIO
import ADC0834
import time
ledPins = [25, 12, 16, 20, 21, 5, 6, 13, 19, 26]
def setup():
GPIO.setmode(GPIO.BCM)
ADC0834.setup()
for i in ledPins:
GPIO.setup(i, GPIO.OUT)
GPIO.output(i, GPIO.HIGH)
def LedBarGraph(value):
for i in ledPins:
GPIO.output(i,GPIO.HIGH)
for i in range(value):
GPIO.output(ledPins[i],GPIO.LOW)
def destroy():
GPIO.cleanup()
def loop():
while True:
analogVal = ADC0834.getResult()
LedBarGraph(int(analogVal/25))
if __name__ == '__main__':
setup()
try:
loop()
except KeyboardInterrupt: # Quand 'Ctrl+C' est pressé, la fonction destroy() sera exécutée.
destroy()
Explication du code
def LedBarGraph(value):
for i in ledPins:
GPIO.output(i,GPIO.HIGH)
for i in range(value):
GPIO.output(ledPins[i],GPIO.LOW)
Cette fonction permet de contrôler l’allumage ou l’extinction des 10 LED du bargraphe LED. Nous commençons par envoyer un signal de niveau haut aux 10 LED pour les éteindre, puis nous décidons combien de LED seront allumées en fonction de la valeur analogique reçue.
def loop():
while True:
analogVal = ADC0834.getResult()
LedBarGraph(int(analogVal/25))
analogVal produit des valeurs (0-255) selon la variation de la tension (0-5V), par exemple, si une tension de 3V est détectée sur une batterie, la valeur correspondante 152 s’affiche sur le voltmètre.
Les 10 LED du bargraphe sont utilisées pour afficher les valeurs de analogVal. 255/10=25, donc chaque augmentation de 25 de la valeur analogique allume une LED supplémentaire, par exemple, si analogVal=150 (environ 3V), 6 LED s’allument.
Image du phénomène
