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.

../_images/list_led_bar.png

Es definitivamente conveniente comprar un kit completo, aquí está el enlace:

Nombre

ELEMENTOS EN ESTE KIT

ENLACE

Raphael Kit

337

Raphael Kit

También puedes comprarlos por separado en los enlaces a continuación.

INTRODUCCIÓN DE COMPONENTES

ENLACE DE COMPRA

Placa de Extensión GPIO

COMPRAR

Protoboard

COMPRAR

Cables de Puente

COMPRAR

Resistor

COMPRAR

Gráfico de Barras LED

-

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

../_images/schematic_led_bar.png

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á.

../_images/image66.png

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

../_images/image67.jpeg