Control WS2812#

El led WS2812 es un led RGB que se puede controlar con un solo pin de datos. Es muy popular en proyectos de iluminación y decoración. En este tutorial, aprenderás cómo controlar un led WS2812 con MicroPython y Arduino.

led rgb

Figura 27 Tira LED WS2812#

MicroPython y Arduino IDE#

from machine import Pin
from neopixel import NeoPixel
np = NeoPixel(Pin(24), 1)
np[0] = (255, 128, 0)

np.write()

Truco

para obtener más información sobre la biblioteca NeoPixel, consulta la Documentación de la Biblioteca NeoPixel.

Control WS2812 con SDCC#

led rgb

Figura 28 Tira LED WS2812#

Código Enlace
WS2812 Proyecto Completo
#include "src/config.h"
#include "src/system.h"
#include "src/delay.h"
#include "src/neo.h"
#include <stdlib.h>

#define delay 100
#define NeoPixel 2
#define level 100

void randomColorSequence(void) {

for(int j=0;j<NeoPixel;j++){
       uint8_t red = rand() % level;
       uint8_t green = rand() % level;
       uint8_t blue = rand() % level;
       uint8_t num = rand() % NeoPixel;

       for(int i=0; i<num; i++){
       NEO_writeColor(0, 0, 0);
       }
       NEO_writeColor(red, green, blue);
       DLY_ms(delay);
       NEO_writeColor(0, 0, 0);
}

for(int l=0; l<9; l++){
       NEO_writeColor(0, 0, 0);
}

}

void main(void) {
NEO_init();
CLK_config();
DLY_ms(delay);

while (1) {
       randomColorSequence();
       DLY_ms(10);

}
}
figura-gif