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.

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()
#include <Adafruit_NeoPixel.h>
#define PIN 24
#define NUMPIXELS 1
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
pixels.setPixelColor(0, pixels.Color(255, 128, 0));
pixels.show();
Truco
para obtener más información sobre la biblioteca NeoPixel, consulta la Documentación de la Biblioteca NeoPixel.
Control WS2812 con SDCC#

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);
}
}
