Nota

¡Hola, bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi, Arduino y ESP32 en Facebook! Sumérgete más profundamente 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.

  • Aprende y comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.

  • Vistas previas exclusivas: Obtén acceso anticipado a anuncios de nuevos productos y avances.

  • Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.

  • 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!

1.1.2 LED RGB

Introducción

En este proyecto, controlaremos un LED RGB para que parpadee en varios colores.

Componentes Necesarios

En este proyecto, necesitamos los siguientes componentes.

../_images/list_rgb_led1.png

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

Nombre

ELEMENTOS EN ESTE KIT

ENLACE

Kit Raphael

337

Raphael Kit

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

INTRODUCCIÓN DEL COMPONENTE

ENLACE DE COMPRA

Placa de Extensión GPIO

COMPRAR

Protoboard

COMPRAR

Cables de Puente

COMPRAR

Resistor

COMPRAR

LED RGB

COMPRAR

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. La pata más larga (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.

../_images/rgb_led_schematic1.png

Procedimientos Experimentales

Paso 1: Construye el circuito.

../_images/image611.png

Paso 2: Ve a la carpeta del código.

cd ~/raphael-kit/nodejs/

Paso 3: Ejecuta el código.

sudo node rgb_led.js

Después de ejecutar el código, verás que el LED RGB muestra los colores rojo, verde, azul, amarillo, rosa y cian.

Código

const Gpio = require('pigpio').Gpio;
const ledred = new Gpio(17, { mode: Gpio.OUTPUT });
const ledgreen = new Gpio(18, { mode: Gpio.OUTPUT });
const ledblue = new Gpio(27, { mode: Gpio.OUTPUT });

function colorset(r, g, b) {
    ledred.pwmWrite(r);
    ledgreen.pwmWrite(g);
    ledblue.pwmWrite(b);
}

var color_index = -1;

setInterval(() => {
color_index += 1;
switch (color_index) {
    case 0:
        colorset(0xff, 0x00, 0xFF);
        break;
    case 1:
        colorset(0x00, 0xff, 0x00);
        break;
    case 2:
        colorset(0x00, 0x00, 0xff);
        break;
    case 3:
        colorset(0xff, 0xff, 0x00);
        break;
    case 4:
        colorset(0xff, 0x00, 0xff);
        break;
    case 5:
        colorset(0xc0, 0xff, 0x3e);
        break;
    default:
        color_index=-1;
    }
}, 500);

Explicación del Código

const ledred = new Gpio(17,{mode: Gpio.OUTPUT});
const ledgreen = new Gpio(18,{mode: Gpio.OUTPUT});
const ledblue = new Gpio(27,{mode: Gpio.OUTPUT});

Inicializa los pines 17, 18 y 27 en modo de salida, y asígnalos a las constantes ledred, ledgreen y ledblue respectivamente.

function colorset(r,g,b){
    ledred.pwmWrite(r);
    ledgreen.pwmWrite(g);
    ledblue.pwmWrite(b);
}

Implementa una función colorset(r,g,b), que se usa para escribir valores de pulso en los pines 17, 18, 27. La biblioteca Gpio encapsula la función pwmWrite() para escribir en los pines el valor del pulso, que varía de 0x00 a 0xff. Luego, puedes escribir valores RGB en el LED RGB a través de la función colorset(r,g,b), para que pueda mostrar una variedad de colores.

Nota

Para preguntas sobre RGB, por favor consulta el sitio web: https://www.rapidtables.com/web/color/RGB_Color.html

var color_index = -1;

setInterval(() => {
color_index += 1;
switch (color_index) {
    case 0:
        colorset(0xff, 0x00, 0xFF);
        break;
    case 1:
        colorset(0x00, 0xff, 0x00);
        break;
    case 2:
        colorset(0x00, 0x00, 0xff);
        break;
    case 3:
        colorset(0xff, 0xff, 0x00);
        break;
    case 4:
        colorset(0xff, 0x00, 0xff);
        break;
    case 5:
        colorset(0xc0, 0xff, 0x3e);
        break;
    default:
        color_index=-1;
    }
}, 500);

El LED RGB es controlado por colorset() ejecutado cada 500ms. Se utiliza un switch case aquí para seleccionar el color emitido por los LEDs RGB. Dado que color_index cambia en uno cada ciclo, el color de este LED RGB cambiará en orden.

Imagen del Fenómeno

../_images/image621.jpeg