Arduino - Fita LED WS2812B

Neste tutorial, vamos aprender a usar o Arduino para controlar a fita LED RGB WS2812B. Com um único pino do Arduino:

Sobre a Fita LED RGB WS2812B

Pinagem

A fita LED RGB WS2812B tem três pinos:

  • Pino GND: precisa ser conectado ao GND (0V)
  • Pino VCC: precisa ser conectado ao 5V de uma fonte de alimentação externa
  • Pino Din: é o pino que recebe o sinal de controle. Ele deve ser conectado a um pino do Arduino.
Pinagem do WS2812B

※ Nota:

A ordem dos pinos pode variar entre fabricantes. SEMPRE use as identificações impressas na fita LED.

Diagrama de Ligação

Diagrama de Ligação da fita LED RGB WS2812B com Arduino

This image is created using Fritzing. Click to enlarge image

Como Programar a Fita LED RGB WS2812B

Existem duas bibliotecas que podem ser usadas para controlar a fita LED WS2812B:

  • Biblioteca Adafruit NeoPixel.
  • Biblioteca FastLED.

Este tutorial usará a biblioteca Adafruit NeoPixel

  • Declare um objeto WS2812B
#define PIN_WS2812B 4 // Arduino pin that connects to WS2812B #define NUM_PIXELS 30 // The number of LEDs (pixels) on WS2812B Adafruit_NeoPixel WS2812B(NUM_PIXELS, PIN_WS2812B, NEO_GRB + NEO_KHZ800);
  • Inicialize o WS2812B
WS2812B.begin(); // INITIALIZE WS2812B strip object (REQUIRED)
  • Defina a cor de cada LED individual (chamado de pixel).
WS2812B.setPixelColor(pixel, WS2812B.Color(255, 0, 0));
  • Defina o brilho de toda a fita.
WS2812B.setBrightness(100); // a value from 0 to 255

※ Nota:

  • WS2812B.setBrightness() é usado para todos os pixels da fita LED. Para definir o brilho de cada pixel individualmente, podemos escalar o valor da cor.
  • Os valores definidos por WS2812B.setBrightness() e WS2812B.setPixelColor() só têm efeito quando WS2812B.show() é chamado.

Código Arduino

O código abaixo faz o seguinte:

  • Acende os pixels em verde um por um, com um atraso entre cada pixel
  • Apaga todos os pixels por dois segundos
  • Acende todos os pixels em vermelho ao mesmo tempo por dois segundos
  • Repete o processo acima infinitamente
/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-ws2812b-led-strip */ #include <Adafruit_NeoPixel.h> #ifdef __AVR__ #include <avr/power.h> // Required for 16 MHz Adafruit Trinket #endif #define PIN_WS2812B 4 // Arduino pin that connects to WS2812B #define NUM_PIXELS 30 // The number of LEDs (pixels) on WS2812B #define DELAY_INTERVAL 250 // 250ms pause between each pixel Adafruit_NeoPixel WS2812B(NUM_PIXELS, PIN_WS2812B, NEO_GRB + NEO_KHZ800); void setup() { WS2812B.begin(); // INITIALIZE WS2812B strip object (REQUIRED) } void loop() { WS2812B.clear(); // set all pixel colors to 'off'. It only takes effect if pixels.show() is called // turn pixels to green one by one with delay between each pixel for (int pixel = 0; pixel < NUM_PIXELS; pixel++) { // for each pixel WS2812B.setPixelColor(pixel, WS2812B.Color(0, 255, 0)); // it only takes effect if pixels.show() is called WS2812B.show(); // send the updated pixel colors to the WS2812B hardware. delay(DELAY_INTERVAL); // pause between each pixel } // turn off all pixels for two seconds WS2812B.clear(); WS2812B.show(); // send the updated pixel colors to the WS2812B hardware. delay(2000); // off time // turn on all pixels to red at the same time for two seconds for (int pixel = 0; pixel < NUM_PIXELS; pixel++) { // for each pixel WS2812B.setPixelColor(pixel, WS2812B.Color(255, 0, 0)); // it only takes effect if pixels.show() is called } WS2812B.show(); // send the updated pixel colors to the WS2812B hardware. delay(2000); // on time // turn off all pixels for one seconds WS2812B.clear(); WS2812B.show(); // send the updated pixel colors to the WS2812B hardware. delay(2000); // off time }

Passos Rápidos

  • Vá até o ícone Libraries na barra esquerda da Arduino IDE.
  • Pesquise “Adafruit NeoPixel” e encontre a biblioteca WS2812B da Adafruit
  • Clique no botão Install para instalar a biblioteca NeoPixel.
Biblioteca NeoPixel para Arduino
  • Copie o código acima e abra com a Arduino IDE
  • Clique no botão Upload na Arduino IDE para carregar o código no Arduino
  • Veja o efeito dos LEDs

※ Nota:

Para qualquer efeito de LED complicado, oferecemos o serviço de programação pago

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!