Site icon AranaCorp

Usar uma fita de LED WS2812B com o Arduino

As fitas de LED são feitas de uma sucessão de LEDs RGB endereçáveis, o que significa que o brilho e a cor de cada LED podem ser definidos de forma independente Existem vários modelos de fitas: de cor única, não endereçáveis, 5 ou 12V, etc. Escolha bem o modelo que pretende usar.

Material

Esquema

A fita de LED utiliza um pino PWM no microcontrolador para determinar a cor, a intensidade e o LED a ser aceso. Certifique-se de utilizar uma fonte externa de alimentação, pois a fita de LED pode consumir muita energia, especialmente se for longa e se houver várias delas alimentadas em série. Para uma fita de LED WS2812B, contamos 50mA por LED, ou seja, 2.5A para 50 LEDs. Verifique o número e o tipo de LEDs que pretende iluminar para escolher uma fonte de tensão adequada.

Código

Dependendo da marca da fita de LED, diferentes bibliotecas podem ser usadas, como a Adafruit_NeoPixel ou a PololuLedStrip. Neste tutorial, usamos a biblioteca FastLED.h. Para inicializar a biblioteca, é preciso especificar o tipo e o número de LEDs, bem como a ordem das cores (Vermelho,Verde,Azul), que pode variar conforme o modelo de fita.

Uma vez inicializado o objeto, é possível acessar cada LED através da matriz de LEDs. Definimos a cor e a intensidade luminosa do LED i com a função led[i].setRGB() e em seguida validamos com a função 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);
  }
}

Aplicações

Fontes

Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie

Exit mobile version