Nota

¡Hola, bienvenido a la comunidad de entusiastas de Raspberry Pi, Arduino y ESP32 de SunFounder en Facebook! Profundiza 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 avances.

  • Descuentos Especiales: Disfruta de descuentos exclusivos en nuestros productos más nuevos.

  • Promociones Festivas y Sorteos: Participa en sorteos y promociones de temporada.

👉 ¿Listo para explorar y crear con nosotros? Haz clic en [aquí] y únete hoy mismo!

Lección 28: Módulo LED RGB

En esta lección, aprenderás a controlar un LED RGB utilizando el Raspberry Pi Pico W. Descubrirás cómo configurar la modulación por ancho de pulso (PWM) en diferentes pines GPIO para cada canal de color del LED RGB, lo que te permitirá crear varios colores ajustando la intensidad de los componentes rojo, verde y azul. Este proyecto ofrece a los principiantes una excelente oportunidad para adquirir experiencia práctica con PWM y mezcla de colores en Raspberry Pi Pico W utilizando MicroPython. Además, aprenderás a manejar interrupciones para apagar el LED de manera segura. Esta lección proporciona una forma divertida e interactiva de explorar los conceptos básicos de la electrónica y la programación.

Componentes Requeridos

En este proyecto, necesitamos los siguientes componentes.

Es muy conveniente comprar un kit completo, aquí tienes el enlace:

Nombre

ARTÍCULOS EN ESTE KIT

ENLACE

Kit Sensor Universal Maker

94

BUY

También puedes comprarlos por separado desde los siguientes enlaces.

Introducción del componente

Enlace de compra

Raspberry Pi Pico W

-

Módulo LED RGB

-

Placa de Pruebas

Comprar

Conexión

../_images/Lesson_28_RGB_LED_Module_pico_bb.png

Código

from machine import Pin, PWM
from time import sleep

# Inicializar PWM para cada canal de color de un LED RGB
red = PWM(Pin(26))  # Canal rojo en el pin GPIO 26
green = PWM(Pin(27))  # Canal verde en el pin GPIO 27
blue = PWM(Pin(28))  # Canal azul en el pin GPIO 28

# Configurar la frecuencia a 1000 Hz para todos los canales
red.freq(1000)
green.freq(1000)
blue.freq(1000)


# Función para establecer el color del LED RGB
def set_color(r, g, b):
    red.duty_u16(r)  # Intensidad del rojo
    green.duty_u16(g)  # Intensidad del verde
    blue.duty_u16(b)  # Intensidad del azul


try:
    while True:
        set_color(65535, 0, 0)  # Rojo
        sleep(1)
        set_color(0, 65535, 0)  # Verde
        sleep(1)
        set_color(0, 0, 65535)  # Azul
        sleep(1)
except KeyboardInterrupt:
    set_color(0, 0, 0)  # Apagar el LED RGB al interrumpir

Análisis del Código

  1. Importación de Bibliotecas

    El módulo machine se importa para utilizar las clases PWM y Pin. El módulo time se importa para usar la función sleep y crear retrasos.

    from machine import Pin, PWM
    from time import sleep
    
  2. Inicialización de PWM para el LED RGB

    El LED RGB tiene tres canales (Rojo, Verde, Azul), cada uno controlado por una señal PWM separada. Las señales PWM están conectadas a los pines GPIO 26, 27 y 28.

    red = PWM(Pin(26))  # Canal rojo en el pin GPIO 26
    green = PWM(Pin(27))  # Canal verde en el pin GPIO 27
    blue = PWM(Pin(28))  # Canal azul en el pin GPIO 28
    
  3. Configuración de la Frecuencia para las Señales PWM

    La frecuencia de las señales PWM se establece en 1000 Hz para los tres canales.

    red.freq(1000)
    green.freq(1000)
    blue.freq(1000)
    
  4. Definición de la Función set_color

    Esta función establece el color del LED RGB. El método duty_u16 se usa para ajustar el ciclo de trabajo de cada canal de color, lo que determina la intensidad de ese color.

    def set_color(r, g, b):
        red.duty_u16(r)
        green.duty_u16(g)
        blue.duty_u16(b)
    
  5. Bucle Principal del Programa

    Se utiliza un bucle infinito para cambiar el color del LED. La función set_color se llama con diferentes valores para mostrar los colores rojo, verde y azul. Cada color se muestra durante 1 segundo.

    try:
        while True:
            set_color(65535, 0, 0)  # Rojo
            sleep(1)
            set_color(0, 65535, 0)  # Verde
            sleep(1)
            set_color(0, 0, 65535)  # Azul
            sleep(1)
    except KeyboardInterrupt:
        set_color(0, 0, 0)  # Apagar el LED RGB al interrumpir