Arduino Nano - Fita LED WS2812B

A fita LED RGB WS2812B é uma linha de LEDs em que a cor e o brilho de cada um podem ser ajustados de forma independente. Este tutorial ensina como usar um Arduino Nano para controlar a fita LED RGB WS2812B. Em detalhes, vamos aprender:

Todos os LEDs da fita podem ser controlados com apenas um pino digital do Arduino Nano.

Hardware Necessário

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cabo USB A para Mini-B
1×WS2812B RGB Fita LED
1×1000uF Capacitor
1×470Ω Resistor
1×Fonte de Alimentação 5V
1×Conector de Alimentação DC
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Sobre a Fita LED RGB WS2812B

Pinagem da Fita LED WS2812B

A Fita LED RGB WS2812B tem três pinos:

  • Pino GND: deve ser conectado ao GND (0V)
  • Pino VCC: deve ser conectado aos 5V de uma fonte de energia externa
  • Pino Din: é o pino que recebe o sinal de controle e deve ser conectado a um pino digital do Arduino Nano.
Pinagem do WS2812B

※ Nota:

A ordem dos pinos pode ser diferente entre os fabricantes. É fundamental usar sempre os rótulos impressos na Fita LED.

Diagrama de Ligação

Diagrama de ligação do Arduino Nano com fita LED RGB WS2812B

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Nano e outros componentes.

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 vai usar a biblioteca Adafruit NeoPixel.

  • Crie um objeto WS2812B.
#define PIN_WS2812B 2 // Arduino Nano 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)
  • Especifique a cor de cada LED individual (conhecido como pixel).
WS2812B.setPixelColor(pixel, WS2812B.Color(255, 0, 0));
  • Ajuste o brilho de toda a fita.
WS2812B.setBrightness(100); // a value from 0 to 255

※ Nota:

  • WS2812B.setBrightness() é usada para ajustar o brilho de todos os pixels da fita LED. Para definir o brilho de cada pixel individual, podemos escalar os valores de cor (R,G, B) com a mesma proporção.
  • Os valores definidos por WS2812B.setBrightness() e WS2812B.setPixelColor() só serão aplicados quando WS2812B.show() for chamada.

Código Arduino Nano

O código abaixo executa as seguintes sequências:

  • 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 por dois segundos
  • Repete esse processo indefinidamente
/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-ws2812b-led-strip */ #include <Adafruit_NeoPixel.h> #define PIN_WS2812B 2 // The Arduino Nano 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); 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

  • Clique no ícone Libraries na barra esquerda do Arduino IDE.
  • Pesquise “Adafruit NeoPixel” e localize a biblioteca NeoPixel da Adafruit.
  • Em seguida, pressione o botão Install para instalar a biblioteca NeoPixel.
Biblioteca WS2812B do Arduino Nano
  • Copie o código e abra-o no Arduino IDE.
  • Clique no botão Upload no Arduino IDE para enviar o código ao Arduino Nano.
  • Veja o efeito de LED.

※ Nota:

Para qualquer efeito de LED mais elaborado, 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!