Nota
Hola, ¡bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi, Arduino y ESP32 en Facebook! Sumérgete más en Raspberry Pi, Arduino y ESP32 con otros entusiastas.
¿Por qué unirse?
Soporte experto: Resuelve problemas post-venta y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprende y comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.
Avances exclusivos: Obtén acceso anticipado a anuncios de nuevos productos y adelantos.
Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.
Promociones y sorteos festivos: Participa en sorteos y promociones festivas.
👉 ¿Listo para explorar y crear con nosotros? ¡Haz clic en [Aquí] y únete hoy!
1.1.3 Gráfico de barras LED
Introducción
En este proyecto, iluminaremos secuencialmente las luces en el gráfico de barras LED.
Componentes necesarios
En este proyecto, necesitamos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
Nombre |
ELEMENTOS EN ESTE KIT |
ENLACE |
|---|---|---|
Raphael Kit |
337 |
También puedes comprarlos por separado en los enlaces a continuación.
INTRODUCCIÓN DE COMPONENTES |
ENLACE DE COMPRA |
|---|---|
- |
Diagrama esquemático
Nombre T-Board |
Pin físico |
wiringPi |
BCM |
GPIO17 |
Pin 11 |
0 |
17 |
GPIO18 |
Pin 12 |
1 |
18 |
GPIO27 |
Pin 13 |
2 |
27 |
GPIO22 |
Pin 15 |
3 |
22 |
GPIO23 |
Pin 16 |
4 |
23 |
GPIO24 |
Pin 18 |
5 |
24 |
GPIO25 |
Pin 22 |
6 |
25 |
SDA1 |
Pin 3 |
8 |
2 |
SCL1 |
Pin 5 |
9 |
3 |
SPICE0 |
Pin 24 |
10 |
8 |
Procedimientos experimentales
Paso 1: Construir el circuito.
Nota
Presta atención a la dirección al conectar. Si lo conectas al revés, no se encenderá.
Paso 2: Ve a la carpeta del código.
cd ~/raphael-kit/python/
Paso 3: Ejecuta el archivo ejecutable.
sudo python3 1.1.3_LedBarGraph.py
Después de ejecutar el código, verás que los LEDs en la barra LED se encienden y apagan regularmente.
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 time
ledPins = [11, 12, 13, 15, 16, 18, 22, 3, 5, 24]
def oddLedBarGraph():
for i in range(5):
j = i*2
GPIO.output(ledPins[j],GPIO.LOW)
time.sleep(0.3)
GPIO.output(ledPins[j],GPIO.HIGH)
def evenLedBarGraph():
for i in range(5):
j = i*2+1
GPIO.output(ledPins[j],GPIO.LOW)
time.sleep(0.3)
GPIO.output(ledPins[j],GPIO.HIGH)
def allLedBarGraph():
for i in ledPins:
GPIO.output(i,GPIO.LOW)
time.sleep(0.3)
GPIO.output(i,GPIO.HIGH)
def setup():
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD) # Numbers GPIOs by physical location
for i in ledPins:
GPIO.setup(i, GPIO.OUT) # Set all ledPins' mode is output
GPIO.output(i, GPIO.HIGH) # Set all ledPins to high(+3.3V) to off led
def loop():
while True:
oddLedBarGraph()
time.sleep(0.3)
evenLedBarGraph()
time.sleep(0.3)
allLedBarGraph()
time.sleep(0.3)
def destroy():
for pin in ledPins:
GPIO.output(pin, GPIO.HIGH) # turn off all leds
GPIO.cleanup() # Release resource
if __name__ == '__main__': # Program start from here
setup()
try:
loop()
except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the program destroy() will be executed.
destroy()
Explicación del código
ledPins = [11, 12, 13, 15, 16, 18, 22, 3, 5, 24] Crear un array y asignarle el número de pin correspondiente al gráfico de barras LED (11, 12, 13, 15, 16, 18, 22, 3, 5, 24) y el array se usará para controlar el LED.
def oddLedBarGraph():
for i in range(5):
j = i*2
GPIO.output(ledPins[j],GPIO.LOW)
time.sleep(0.3)
GPIO.output(ledPins[j],GPIO.HIGH)
Hacer que los LEDs en las posiciones impares del gráfico de barras LED se enciendan en secuencia.
def evenLedBarGraph():
for i in range(5):
j = i*2+1
GPIO.output(ledPins[j],GPIO.LOW)
time.sleep(0.3)
GPIO.output(ledPins[j],GPIO.HIGH)
Hacer que los LEDs en las posiciones pares del gráfico de barras LED se enciendan en secuencia.
def allLedBarGraph():
for i in ledPins:
GPIO.output(i,GPIO.LOW)
time.sleep(0.3)
GPIO.output(i,GPIO.HIGH)
Hacer que los LEDs en el gráfico de barras LED se enciendan uno por uno.
Imagen del fenómeno