Nota
¡Hola! Bienvenido a la Comunidad de Entusiastas de SunFounder Raspberry Pi, Arduino y ESP32 en Facebook. Sumérgete en el mundo de Raspberry Pi, Arduino y ESP32 con otros entusiastas.
¿Por qué unirse?
Soporte experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprender y compartir: Intercambia consejos y tutoriales para mejorar tus habilidades.
Avances exclusivos: Accede anticipadamente a nuevos anuncios de productos y adelantos exclusivos.
Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.
Promociones y sorteos festivos: Participa en sorteos y promociones navideñas.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo.
4.1.11 Indicador de Batería
Nota
Dependiendo de la versión de su kit, identifique si tiene ADC0834 o MCP3008 y continúe con la sección correspondiente.
Introducción
En este proyecto, haremos un dispositivo indicador de batería que pueda mostrar visualmente el nivel de la batería en el gráfico de barras LED.
Advertencia
No utilices componentes de batería que superen los 3.3V para evitar sobrecargas, lo que puede dañar el chip o la Raspberry Pi.
Componentes Necesarios
En este proyecto, necesitamos los siguientes componentes.
Es muy conveniente comprar un kit completo, aquí está el enlace:
Nombre |
ELEMENTOS EN ESTE KIT |
ENLACE |
|---|---|---|
Kit Raphael |
337 |
También puedes comprarlos por separado en los enlaces a continuación.
INTRODUCCIÓN DEL COMPONENTE |
ENLACE DE COMPRA |
|---|---|
- |
|
- |
Diagrama Esquemático
Nombre T-Board |
cableado físico |
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 |
Procedimientos Experimentales
Paso 1: Construye el circuito.
Paso 2: Ve a la carpeta del código.
cd ~/raphael-kit/python/
Paso 3: Ejecuta el archivo ejecutable.
sudo python3 4.1.11_BatteryIndicator.py
Después de que el programa se ejecute, conecta un cable al tercer pin del ADC0834 y al GND por separado y luego conéctalos a los dos polos de una batería por separado. Podrás ver que el LED correspondiente en el gráfico de barras LED se enciende para mostrar el nivel de energía (rango de medición: 0-5V).
Código
Nota
Puedes Modificar/Restablecer/Copiar/Ejecutar/Detener el código a continuación. Pero antes de eso, necesitas ir a la ruta del código fuente como raphael-kit/python. Después de modificar el código, puedes ejecutarlo directamente para ver el efecto.
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: # When 'Ctrl+C' is pressed, the program destroy() will be executed.
destroy()
Explicación del Código
def LedBarGraph(value):
for i in ledPins:
GPIO.output(i,GPIO.HIGH)
for i in range(value):
GPIO.output(ledPins[i],GPIO.LOW)
Esta función sirve para controlar el encendido o apagado de los 10 LEDs en el gráfico de barras LED. Primero, damos a estos 10 LEDs niveles altos para que estén apagados al principio, luego decidimos cuántos LEDs se encenderán cambiando el valor analógico recibido.
def loop():
while True:
analogVal = ADC0834.getResult()
LedBarGraph(int(analogVal/25))
El valor de analogVal produce valores (0-255) con diferentes valores de voltaje (0-5V), por ejemplo, si se detectan 3V en una batería, el valor correspondiente 152 se muestra en el voltímetro.
Los 10 LEDs en el gráfico de barras LED se utilizan para mostrar las lecturas de analogVal . 255/10=25, por lo que cada 25 que aumenta el valor analógico, se enciende un LED más, por ejemplo, si “analogVal=150 (aproximadamente 3V), se encienden 6 LEDs.”
Imagen del Fenómeno