Etiquetas: ,
5
(2)

Las cintas de LED están compuestas por una sucesión de LEDs RGB direccionables, es decir, el brillo y el color de cada LED pueden definirse de forma independiente. Hay varios modelos de cinta: de un solo color, no direccionable, 5 o 12V, etc. Presta atención al modelo que quieres usar.

Hardware

  • Computadora
  • Arduino UNO
  • Cable USB A macho a B macho
  • Cinta de LED WS2812b

Esquema

La cinta de LED utiliza un pin PWM en el microcontrolador para determinar el color, la intensidad y el LED a encender. Asegúrese de usar una fuente de alimentación externa para alimentar los LED. Una cinta de LED puede tener mucha necesidad de energía, especialmente si es larga o si varias cintas se alimentan en serie. Para una cinta de LED WS2812B, se requiere 50mA por LED o 2.5A para 50 LEDs. Compruebe cuidadosamente el número y el tipo de LED que desea iluminar para elegir la mejor fuente de voltaje.

Código

Se pueden utilizar varias bibliotecas dependiendo de la marca de la cinta de LED como Adafruit_NeoPixel o PololuLedStrip. En este tutorial usamos la biblioteca FastLED.h. Para inicializar la biblioteca, hay que especificar el tipo y el número de LEDs utilizados y el orden de los colores (Rojo, Verde, Azul) que pueden ser diferentes según el modelo de cinta.
Una vez que el objeto ha sido inicializado, es posible acceder a cada LED a través de la mesa de leds. Es posible definir el color y la intensidad luminosa del LED i utilizando la función de LED [i].setRGB() y luego validarlo con la función FastLED.show().

//Libraries
#include <FastLED.h>//https://github.com/FastLED/FastLED

//Constants
#define NUM_STRIPS 1
#define NUM_LEDS 60
#define BRIGHTNESS 10
#define LED_TYPE WS2812B
#define COLOR_ORDER BRG//RGB
#define FASTLED_ALLOW_INTERRUPTS 0
#define FASTLED_INTERRUPT_RETRY_COUNT 1
#define FRAMES_PER_SECOND 60
#define COOLING 55
#define SPARKING 120

//Parameters
const int stripPin  = 3;

//Variables
bool gReverseDirection  = false;

//Objects
CRGB leds[NUM_LEDS];

void setup() {
  //Init Serial USB
  Serial.begin(9600);
  Serial.println(F("Initialize System"));
  //Init led strips
  FastLED.addLeds<LED_TYPE, stripPin, COLOR_ORDER>(leds, NUM_LEDS);
  FastLED.setBrightness(  BRIGHTNESS );
}

void loop() {
  ledScenario();
}

void ledScenario(void ) { /* function ledScenario */
  ////LEDS Strip scenario
  for (int i = 0; i < NUM_LEDS; i++) {
    //leds[i] = CRGB::Goldenrod;
    leds[i].setRGB(255, 0, 255);
    leds[i + 3].setRGB(255, 0, 255);
    FastLED.show();
    delay(100);
    leds[i] = CRGB::Black;
    FastLED.show();
    delay(100);
  }
}

Aplicaciones

  • Crear una atmósfera brillante en tu apartamento
  • Crear una lámpara que cambie la luz de acuerdo con la música

Fuentes

Encuentre otros tutoriales y ejemplos en el generador de código automático
Arquitecto de Código

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 5 / 5. Recuento de votos: 2

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en los medios sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?