ESP32 - Fita LED NeoPixel

A fita NeoPixel é como uma fita de LEDs RGB coloridos, e você pode controlar a cor e o brilho de cada LED de forma individual. Neste guia, vamos descobrir como usar um ESP32 para controlar a fita LED RGB NeoPixel. Para controlar todos os LEDs da fita NeoPixel, você só precisa de um único pino do ESP32.

Sobre a Fita LED RGB NeoPixel

Pinagem

A fita LED RGB NeoPixel 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 GPIO do ESP32.
Pinagem do NeoPixel

Diagrama de Ligação

Diagrama de Ligação do ESP32 com a fita LED RGB NeoPixel

This image is created using Fritzing. Click to enlarge image

Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.

Como Programar a Fita LED RGB NeoPixel

  • Declare um objeto NeoPixel
#define PIN_NEO_PIXEL 16 // The ESP32 pin GPIO16 connected 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);
  • Inicialize o NeoPixel
NeoPixel.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)
  • Defina a cor de cada LED individual (chamado de pixel).
NeoPixel.setPixelColor(pixel, NeoPixel.Color(255, 0, 0));
  • Defina o brilho de toda a fita.
NeoPixel.setBrightness(200); // a value from 0 to 255

※ Nota:

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

Código ESP32

O código a seguir realiza as seguintes tarefas:

  • Ele muda os pixels para verde em sequência, com uma pausa entre cada pixel.
  • Ele desliga todos os pixels por dois segundos.
  • Ele define todos os pixels como vermelho ao mesmo tempo, mantendo esse estado por 1 segundo.
  • Todo esse processo é então repetido indefinidamente.
/* * Este código de ESP32 foi desenvolvido por pt.newbiely.com * Este código de ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp32/esp32-neopixel-led-strip */ #include <Adafruit_NeoPixel.h> #define PIN_NEO_PIXEL 16 // The ESP32 pin GPIO16 connected to NeoPixel #define NUM_PIXELS 30 // The number of LEDs (pixels) on NeoPixel LED strip 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(); // update to the NeoPixel Led Strip delay(500); // 500ms pause between each pixel } // turn off all pixels for two seconds NeoPixel.clear(); NeoPixel.show(); // update to the NeoPixel Led Strip delay(2000); // 2 seconds 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(); // update to the NeoPixel Led Strip delay(1000); // 1 second on time // turn off all pixels for one seconds NeoPixel.clear(); NeoPixel.show(); // update to the NeoPixel Led Strip delay(1000); // 1 second off time }

Passos Rápidos

  • Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente para o ESP32 na Arduino IDE.
  • Faça a ligação conforme a imagem acima.
  • Conecte a placa ESP32 ao seu PC usando um cabo USB Type-C
  • Abra a Arduino IDE no seu PC.
  • Selecione a placa ESP32 correta (por exemplo, ESP32 Dev Module) e a porta COM.
  • Clique no ícone Libraries na barra lateral esquerda da Arduino IDE.
  • Pesquise por “Adafruit NeoPixel” e depois encontre a biblioteca NeoPixel da Adafruit
  • Clique no botão Install para instalar a biblioteca NeoPixel.
Biblioteca NeoPixel para ESP32
  • Copie o código acima e abra-o na Arduino IDE
  • Clique no botão Upload na Arduino IDE para carregar o código no ESP32
  • Observe o efeito da fita LED

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!