Note
Bonjour et bienvenue dans la Communauté Facebook des passionnés de Raspberry Pi, Arduino et ESP32 de SunFounder ! Plongez plus profondément dans l’univers des Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.
Pourquoi rejoindre ?
Support d’experts : Résolvez les problèmes après-vente et les défis techniques avec l’aide de notre communauté et de notre équipe.
Apprendre et partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.
Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus.
Réductions spéciales : Profitez de réductions exclusives sur nos produits les plus récents.
Promotions festives et cadeaux : Participez à des cadeaux et des promotions de vacances.
👉 Prêt à explorer et à créer avec nous ? Cliquez [Ici] et rejoignez-nous aujourd’hui !
4.1.8 Indicateur de Batterie
Note
Selon la version de votre kit, identifiez si vous disposez d’un ADC0834 ou d’un MCP3008 et suivez la section correspondante.
Introduction
Dans ce projet, nous allons créer un dispositif d’indication de batterie qui peut afficher visuellement le niveau de la batterie sur le Bargraph LED.
Composants nécessaires
Pour ce projet, nous avons besoin des composants suivants.
Il est certainement pratique d’acheter un kit complet, voici le lien :
Nom |
ÉLÉMENTS DANS CE KIT |
LIEN |
|---|---|---|
Kit Raphael |
337 |
Vous pouvez également les acheter séparément via les liens ci-dessous.
INTRODUCTION AUX COMPOSANTS |
LIEN D’ACHAT |
|---|---|
- |
|
- |
Schéma
Nom T-Board |
Physique |
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 : Construire le circuit.
Étape 2 : Accédez au dossier du code.
cd ~/raphael-kit/python-pi5
Étape 3 : Exécutez le fichier exécutable.
sudo python3 4.1.11_BatteryIndicator_zero.py
Après le démarrage du programme, connectez séparément un fil de sortie au 3ème pin de l’ADC0834 et à la masse, puis connectez-les aux deux pôles d’une batterie. Vous verrez la LED correspondante sur le Bargraph LED s’allumer pour afficher le niveau de charge (plage de mesure : 0-5V).
Avertissement
Si vous recevez le message d’erreur RuntimeError: Cannot determine SOC peripheral base address, veuillez consulter Si « gpiozero » ne fonctionne pas.
Code
Note
Vous pouvez Modifier/Réinitialiser/Copier/Exécuter/Arrêter le code ci-dessous. Mais avant cela, vous devez accéder au chemin du code source comme raphael-kit/python-pi5. Après avoir modifié le code, vous pouvez l’exécuter directement pour voir l’effet.
#!/usr/bin/env python3
from gpiozero import LED
import ADC0834
import time
# List of GPIO pins to which LEDs are connected
ledPins = [25, 12, 16, 20, 21, 5, 6, 13, 19, 26]
# Initialize LED objects for each pin in the list
leds = [LED(pin) for pin in ledPins]
# Setup ADC0834 module
ADC0834.setup()
def LedBarGraph(value):
# Turn off all LEDs
for i in range(10):
leds[i].off()
# Turn on LEDs up to the specified value
for i in range(value):
leds[i].on()
try:
# Main loop to continuously update LED bar graph
while True:
# Read analog value from ADC0834
analogVal = ADC0834.getResult()
# Convert analog value to LED bar graph level
LedBarGraph(int(analogVal/25))
except KeyboardInterrupt:
# Turn off all LEDs when program is interrupted
for i in range(10):
leds[i].off()
Explication du Code
Cette section importe les bibliothèques nécessaires.
gpiozeroest utilisée pour contrôler les LED,ADC0834pour interfacer avec le module ADC, ettimepour les opérations liées au temps.#!/usr/bin/env python3 from gpiozero import LED import ADC0834 import time
Définit les broches GPIO auxquelles les LED sont connectées et initialise un tableau d’objets LED pour chaque broche. Cela permet de contrôler facilement chaque LED du tableau.
# List of GPIO pins to which LEDs are connected ledPins = [25, 12, 16, 20, 21, 5, 6, 13, 19, 26] # Initialize LED objects for each pin in the list leds = [LED(pin) for pin in ledPins]
Initialise le module ADC0834 pour la conversion analogique-numérique.
# Setup ADC0834 module ADC0834.setup()
Cette fonction éteint toutes les LED puis allume un certain nombre de LED en fonction de la valeur d’entrée, créant ainsi une représentation en barres graphiques.
def LedBarGraph(value): # Turn off all LEDs for i in range(10): leds[i].off() # Turn on LEDs up to the specified value for i in range(value): leds[i].on()
Lit continuellement la valeur analogique de l’ADC0834 et met à jour le bargraphe LED en fonction de cette valeur. La valeur analogique est réduite à une plage de 0-10 pour les 10 LED.
try: # Main loop to continuously update LED bar graph while True: # Read analog value from ADC0834 analogVal = ADC0834.getResult() # Convert analog value to LED bar graph level LedBarGraph(int(analogVal/25))
S’assure que toutes les LED sont éteintes lorsque le programme est interrompu (par exemple, en appuyant sur Ctrl+C).
except KeyboardInterrupt: # Turn off all LEDs when program is interrupted for i in range(10): leds[i].off()