Tutorial ESP32 12/55 - Projeto WS2812 RGB Strip 4 com o kit de aprendizado IoT ESP32 da SunFounder

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.

SunFounder-ESP32-Lição-12-Fita-LED.mp4_snapshot_00.02.422

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

ESP32-12-WS2812-wiring

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

Imagens

ESP32-12-WS2812-wiring
ESP32-12-WS2812-wiring
ESP32-12-WS2812-schematic
ESP32-12-WS2812-schematic
SunFounder-ESP32-Lesson-12-LED-Strip.mp4_snapshot_00.02.422
SunFounder-ESP32-Lesson-12-LED-Strip.mp4_snapshot_00.02.422
811-ESP32 Tutorial 12/55- Arduino code for WS2812 RGB LED stripe using ESP32
Idioma: C++
Copiado!

Coisas que você pode precisar

Recursos e referências

Ainda não há recursos.

Arquivos📁

Nenhum arquivo disponível.