Tutorial ESP32 12/55 - Projeto WS2812 RGB Strip 4 com o kit de aprendizado IoT ESP32 da SunFounder
Neste tutorial, exploraremos como controlar uma fita LED WS2812 usando o microcontrolador ESP32. Este projeto permite que você crie uma variedade de cores e controle cada LED individualmente, proporcionando uma maneira divertida e visualmente atraente de aprender sobre programação e eletrônica. Ao final deste tutorial, você terá um setup totalmente funcional que pode mudar cores e padrões dinamicamente.
Usando o microcontrolador ESP32 da SunFounder, que possui capacidades de Wi-Fi e Bluetooth embutidas, podemos facilmente conectar e controlar a fita LED RGB WS2812. A flexibilidade desta fita LED permite aplicações criativas, seja para iluminação decorativa ou projetos educacionais. Para uma melhor compreensão dos passos envolvidos, você pode consultar o vídeo em (no vídeo às 00:00).
Hardware Explicado
Os principais componentes deste projeto incluem o microcontrolador ESP32 e a faixa de LED WS2812. O ESP32 é um microcontrolador poderoso que pode realizar tarefas semelhantes às de um Arduino, mas com opções de conectividade adicionais. Ele possui um conjunto rico de recursos que permitem conectá-lo à nuvem, possibilitando controle remoto e registro de dados.
A fita de LED WS2812 consiste em LEDs RGB endereçáveis individualmente, o que significa que cada LED pode ser controlado para exibir cores diferentes. A fita opera em um protocolo de fio único, permitindo que múltiplos LEDs sejam encadeados juntos sem perder a qualidade do sinal. Cada LED contém um driver embutido que recebe o sinal de entrada e o amplifica para o próximo LED na corrente.
Detalhes da Ficha Técnica
| Fabricante | Worldsemi |
|---|---|
| Número da peça | WS2812 |
| Tensão de lógica/entrada e saída | 3,5-5,3 V |
| Tensão de alimentação | 5 V |
| Corrente de saída (por canal) | 20 mA máximo |
| Corrente de pico (por canal) | 60 mA máx |
| Orientações sobre a frequência PWM | 400 Hz |
| Limiares de lógica de entrada | 0,3 x VDDa 0,7 x VDD |
| Queda de tensão / RDS(on)saturação | 0,5 V máx |
| Limites térmicos | -25 a 80 °C |
| Pacote | 5050 |
| Notas / variantes | Pode ser encadeado para tiras mais longas. |
- Garanta fornecimento adequado de energia (5 V) para evitar danos ao LED.
- Utilize um capacitor (100 µF) entre os terminais da fonte de alimentação para suavizar picos de tensão.
- Mantenha os cabos de dados curtos para reduzir a degradação do sinal.
- Tenha cuidado com a temperatura do LED; garanta uma dissipação de calor adequada.
- Observe a polaridade correta ao conectar a fonte de alimentação e o terra.
- Utilize um resistor de pull-up na linha de dados se estiver usando tiras longas.
Instruções de fiação

Para conectar a fita de LED WS2812 ao ESP32, comece conectando a fonte de alimentação. O fio +5V da fita de LED deve ser conectado ao pino de 5V do ESP32, e o fio de terra (GND) deve ser conectado a um dos pinos GND do ESP32.
Em seguida, conecte o fio de entrada de dados da fita de LED ao pino 14 no ESP32. Certifique-se de que as conexões estejam seguras para garantir a transmissão adequada de dados. Se você estiver usando várias fitas ou distâncias maiores, considere usar um conversor de nível para garantir a integridade do sinal. Essa configuração permitirá que você controle a fita de LED diretamente do ESP32.
Exemplos de Código e Guia Passo a Passo
O código usa a biblioteca Adafruit NeoPixel para controlar a fita de LED WS2812. Ele começa inicializando a fita de LED e definindo a cor inicial como preta. Os identificadores principais no código incluemLED_PIN, que define o pino conectado à linha de dados da fita de LED, eNUM_LEDS, que especifica o número de LEDs na fita.
#include // Include the Adafruit NeoPixel library
#define LED_PIN 14 // NeoPixel LED strip
#define NUM_LEDS 8 // Number of LEDs
Na função de configuração, a fita é inicializada usandostrip.begin(), e a cor inicial é definida como preta comstrip.show(). Isso prepara a tira para mudanças de cor quando o programa é executado.
void setup() {
strip.begin(); // Initialize the NeoPixel strip
strip.show(); // Set initial color to black
}
O loop principal do programa consiste em dois loops for. O primeiro loop acende cada LED um por um, definindo sua cor e atualizando a fita. O segundo loop desliga cada LED da mesma maneira. Isso cria uma animação de luz simples, mas eficaz.
void loop() {
// Turn on LEDs one by one
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, 100, 45, 0); // Set the color of the i-th LED to red
strip.show(); // Update the LED strip with the new colors
delay(100); // Wait for 100 milliseconds
}
// Turn off LEDs one by one
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, 0, 0, 0); // Set the color of the i-th LED to black (turn it off)
strip.show(); // Update the LED strip with the new colors
delay(100); // Wait for 100 milliseconds
}
}
Veja o código completo carregando abaixo do artigo para mais detalhes sobre como implementar diferentes efeitos de cor e animações.
Demonstração / O Que Esperar
Depois de concluir a fiação e carregar o código, você deve ver os LEDs na fita acenderem um a um em uma cor específica, seguidos de desligarem na mesma sequência. Isso cria um efeito de "luz correndo". Se os LEDs não acenderem como esperado, verifique suas conexões de fiação e assegure-se de que a fonte de alimentação é adequada. Além disso, verifique se o pino correto está definido no código (no vídeo às 12:30).
Marcas de Tempo do Vídeo
- 00:00 Iniciar
- 1:40 Introdução ao LED WS2812
- 7:25 Página de documentação do projeto
- 9:16 Explicação da Cor RGB
- 13:16 Explicação da fiação
- 13:48 Explicação do Código Arduino-1
- 19:03 Selecionando a placa ESP32 e a porta no Arduino IDE
- 20:45 Demonstração Code-1
- 22:00 Controlando LED individual
- 24:16 Luz LED de caminhada
- 25:41 Luz de vai e vem
Common Course Links
Common Course Files
Coisas que você pode precisar
-
Amazonas
-
eBay
-
AliExpressCompre fita LED WS2812 da AliExpress-2s.click.aliexpress.com
-
AliExpressCompre fita LED WS2812 no AliExpress.s.click.aliexpress.com
-
BanggoodCompre fita LED WS2812 na Banggoodbanggood.com
Recursos e referências
Ainda não há recursos.
Arquivos📁
Nenhum arquivo disponível.