Nota
¡Hola! Bienvenido a la comunidad de entusiastas de SunFounder para 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 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.
Preestrenos exclusivos: Obtén acceso anticipado a nuevos anuncios de productos y avances.
Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más nuevos.
Promociones y sorteos festivos: Participa en sorteos y promociones de temporada.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy.
1.1.2 LED RGB
Introducción
En este proyecto, controlaremos un LED RGB para que parpadee en varios colores.
Componentes requeridos
En este proyecto, necesitamos los siguientes componentes.
Es definitivamente 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 DE COMPONENTES |
ENLACE DE COMPRA |
|---|---|
Diagrama esquemático
Después de conectar los pines de R, G y B a una resistencia limitadora de corriente, conéctalos a los GPIO17, GPIO18 y GPIO27 respectivamente. El pin más largo (GND) del LED se conecta al GND de la Raspberry Pi. Cuando los tres pines reciben diferentes valores PWM, el LED RGB mostrará diferentes colores.
Nombre T-Board |
Física |
BCM |
GPIO17 |
Pin 11 |
17 |
GPIO18 |
Pin 12 |
18 |
GPIO27 |
Pin 13 |
27 |
Procedimientos experimentales
Paso 1: Monta el circuito.
Paso 2: Abre el archivo de código.
cd ~/raphael-kit/python-pi5
Paso 3: Ejecuta el código.
sudo python3 1.1.2_rgbLed_zero.py
Después de ejecutar el código, verás que el LED RGB muestra rojo, verde, azul, amarillo, rosa y cian.
Advertencia
Si recibe el mensaje de error RuntimeError: Cannot determine SOC peripheral base address, consulte Si «gpiozero» no funciona.
Código
Nota
Puedes Modificar/Restablecer/Copiar/Ejecutar/Detener el código a continuación. Pero antes de eso, necesitas ir a la ruta de origen del código como raphael-kit/python-pi5. Después de modificar el código, puedes ejecutarlo directamente para ver el efecto.
#!/usr/bin/env python3
from gpiozero import RGBLED
from time import sleep
# Define a list of colors for the RGB LED in RGB format (Red, Green, Blue).
# Each color component ranges from 0 (off) to 1 (full intensity).
COLORS = [(1, 0, 0), (0, 1, 0), (0, 0, 1), (1, 1, 0), (1, 0, 1), (0, 1, 1)]
# Initialize an RGB LED. Connect the red component to GPIO 17, green to GPIO 18, and blue to GPIO 27.
rgb_led = RGBLED(red=17, green=18, blue=27)
try:
# Continuously cycle through the defined colors.
while True:
for color in COLORS:
# Set the RGB LED to the current color.
rgb_led.color = color
# Output the current color to the console.
print(f"Color set to: {color}")
# Wait for 1 second before switching to the next color.
sleep(1)
except KeyboardInterrupt:
# Handle a KeyboardInterrupt (Ctrl+C) to exit the loop gracefully.
# GPIO cleanup will be managed automatically by GPIO Zero on script termination.
pass
Explicación del Código
Esto importa la clase
RGBLEDde la bibliotecagpiozeropara controlar un LED RGB, y la bibliotecatimepara implementar retardos en el código.#!/usr/bin/env python3 from gpiozero import RGBLED from time import sleep # Define a list of colors for the RGB LED in RGB format (Red, Green, Blue). # Each color component ranges from 0 (off) to 1 (full intensity).
La lista
COLOREScontiene tuplas que representan diferentes colores en formato RGB. Al asignar diferentes valores de Modulación por Ancho de Pulso (PWM) a cada uno de los pines R, G y B a través del atributorgb_led.color, el LED puede producir una variedad de colores. Los valores PWM varían de 0 a 1, donde 0 representa ninguna intensidad (apagado) y 1 representa la intensidad total para cada componente de color.Por ejemplo, configurando
rgb_led.color = (1, 0, 0)se enciende el LED en rojo, ya que establece la intensidad total para el componente rojo mientras mantiene apagados el verde y el azul. De manera similar, combinaciones variadas de estos valores resultan en diferentes colores. Esta técnica de mezcla de colores a través de PWM permite la creación de una amplia gama de colores en el LED RGB.COLORS = [(1, 0, 0), (0, 1, 0), (0, 0, 1), (1, 1, 0), (1, 0, 1), (0, 1, 1)]
Un LED RGB se inicializa con sus componentes rojo, verde y azul conectados a los pines GPIO 17, 18 y 27, respectivamente.
# Initialize an RGB LED. Connect the red component to GPIO 17, green to GPIO 18, and blue to GPIO 27. rgb_led = RGBLED(red=17, green=18, blue=27)
El bucle
while True:cicla continuamente a través de los colores definidos enCOLORES. Para cada color,rgb_led.color = colorestablece el LED en ese color, ysleep(1)pausa durante 1 segundo.try: # Continuously cycle through the defined colors. while True: for color in COLORS: # Set the RGB LED to the current color. rgb_led.color = color # Output the current color to the console. print(f"Color set to: {color}") # Wait for 1 second before switching to the next color. sleep(1)
Esta sección maneja de manera ordenada una
KeyboardInterrupt(como presionar Ctrl+C). La declaraciónpassse utiliza como un marcador de posición para indicar que no se toma ninguna acción específica en caso de interrupción, ya que GPIO Zero maneja la limpieza de los GPIO automáticamente.except KeyboardInterrupt: # Handle a KeyboardInterrupt (Ctrl+C) to exit the loop gracefully. # GPIO cleanup will be managed automatically by GPIO Zero on script termination. pass