ESP8266 - Fita LED NeoPixel

A fita LED RGB NeoPixel é composta por LEDs cuja cor e brilho podem ser ajustados individualmente. Este tutorial ensina você a usar o ESP8266 para controlar a fita LED RGB NeoPixel. Em detalhes, vamos aprender:

Precisamos usar apenas um pino digital do ESP8266 para controlar todos os LEDs da fita.

Sobre a Fita LED RGB NeoPixel

Pinagem da Fita LED NeoPixel

A fita LED RGB NeoPixel tem três pinos que exigem conexões específicas:

  • O pino GND deve ser ligado ao GND (0V)
  • O pino VCC deve ser conectado ao 5V de uma fonte de alimentação externa
  • O pino Din é o pino que recebe o sinal de controle e deve ser ligado a um pino do ESP8266.
Pinagem do NeoPixel

※ Nota:

A sequência dos pinos pode variar de acordo com o fabricante. É IMPRESCINDÍVEL usar as marcações impressas na fita LED.

Diagrama de Ligação

Diagrama de ligação do ESP8266 NodeMCU com fita LED RGB NeoPixel

This image is created using Fritzing. Click to enlarge image

Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.

Como Programar a Fita LED RGB NeoPixel

  • Crie um objeto NeoPixel
#define PIN_NEO_PIXEL D1 // The ESP8266 pin that connects to NeoPixel #define NUM_PIXELS 30 // The number of LEDs (pixels) on NeoPixel Adafruit_NeoPixel NeoPixel(NUM_PIXELS, PIN_NEO_PIXEL, NEO_GRB + NEO_KHZ800);
  • Fita com 30 LEDs
  • Inicializa a fita NeoPixel, que contém 30 luzes.
NeoPixel.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)
  • Especifique a cor de cada LED (conhecido como pixel).
NeoPixel.setPixelColor(pixel, NeoPixel.Color(255, 0, 0));
  • Ajuste o brilho de todas as fitas.
NeoPixel.setBrightness(100); // a value from 0 to 255

※ Nota:

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

Código ESP8266

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

  • Acende os pixels em verde, um por um, com um atraso entre cada pixel
  • Desliga todos os pixels por dois segundos
  • Acende todos os pixels em vermelho simultaneamente por dois segundos
  • Repete esse processo indefinidamente
/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-neopixel-led-strip */ #include <Adafruit_NeoPixel.h> #define PIN_NEO_PIXEL D1 // The ESP8266 pin that connects to NeoPixel #define NUM_PIXELS 30 // The number of LEDs (pixels) on NeoPixel Adafruit_NeoPixel NeoPixel(NUM_PIXELS, PIN_NEO_PIXEL, NEO_GRB + NEO_KHZ800); void setup() { NeoPixel.begin(); // INITIALIZE NeoPixel strip object (REQUIRED) } void loop() { NeoPixel.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 NeoPixel.setPixelColor(pixel, NeoPixel.Color(0, 255, 0)); // it only takes effect if pixels.show() is called NeoPixel.show(); // send the updated pixel colors to the NeoPixel hardware. delay(DELAY_INTERVAL); // pause between each pixel } // turn off all pixels for two seconds NeoPixel.clear(); NeoPixel.show(); // send the updated pixel colors to the NeoPixel 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 NeoPixel.setPixelColor(pixel, NeoPixel.Color(255, 0, 0)); // it only takes effect if pixels.show() is called } NeoPixel.show(); // send the updated pixel colors to the NeoPixel hardware. delay(2000); // on time // turn off all pixels for one seconds NeoPixel.clear(); NeoPixel.show(); // send the updated pixel colors to the NeoPixel hardware. delay(2000); // off time }

Passos Rápidos

Para começar com o ESP8266 no Arduino IDE, siga estes passos:

  • Confira o tutorial como configurar o ambiente para o ESP8266 no Arduino IDE se esta for a sua primeira vez usando o ESP8266.
  • Ligue os componentes como mostrado no diagrama.
  • Conecte a placa ESP8266 ao seu computador usando um cabo USB.
  • Abra o Arduino IDE no seu computador.
  • Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
  • Clique no ícone de Libraries na barra esquerda do Arduino IDE.
  • Pesquise por “Adafruit NeoPixel” e localize a biblioteca NeoPixel da Adafruit.
  • Em seguida, pressione o botão Install para instalar a biblioteca NeoPixel.
Biblioteca NeoPixel para ESP8266 NodeMCU
  • Copie o código e abra-o no Arduino IDE.
  • Clique no botão Upload para enviar o código ao ESP8266.
  • Confira o efeito dos LEDs.

※ Nota:

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