Algumas partes deste site ainda não estão disponíveis no seu idioma. Estamos trabalhando para corrigir isso e pedimos desculpas por qualquer inconveniente.
Tutorial ESP32 34/55 - Gradiente de cores com LED RGB e Botão | Kit de Aprendizado IoT ESP32 da SunFounder
Neste tutorial, vamos criar um efeito de gradiente de cor usando um LED RGB que se ajusta com base na posição de um potenciômetro (knob). O projeto utiliza um microcontrolador ESP32, que oferece capacidade de Wi-Fi e Bluetooth integradas, tornando-o uma escolha versátil para projetos de IoT. Ao girar o potenciômetro, podemos transitar suavemente entre diferentes cores, demonstrando tanto a funcionalidade do LED RGB quanto a capacidade de ler valores analógicos do potenciômetro.
ESO32-34_-Cor-Gradiente-principal
Este projeto é ideal para aprender sobre PWM (Modulação por Largura de Pulso) e como controlar dispositivos analógicos com um microcontrolador. Ao longo deste tutorial, discutiremos os componentes de hardware necessários, instruções de fiação e forneceremos trechos de código para ajudá-lo a implementar o projeto. Para uma explicação mais visual, não deixe de conferir o vídeo associado (no vídeo às 02:15).
Hardware Explicado
ESO32-34_-Esquema-de-gradiente-de-cor-cor
Os principais componentes utilizados neste projeto incluem o microcontrolador ESP32, um LED RGB e um potenciômetro. O ESP32 é um microcontrolador poderoso que pode lidar com várias tarefas, incluindo comunicação sem fio, tornando-o adequado para aplicações de IoT. O LED RGB consiste em três LEDs individuais (vermelho, verde e azul) que podem ser misturados para produzir uma ampla gama de cores. O potenciômetro atua como um resistor ajustável que fornece uma saída de tensão variável com base em sua posição.
ESP32_pin_rgb
O LED RGB pode ser conectado em duas configurações: ânodo comum ou cátodo comum. Neste projeto, usaremos uma configuração de ânodo comum, onde todos os ânodos estão conectados juntos a uma tensão positiva, permitindo-nos controlar o brilho de cada LED individualmente com PWM. O potenciômetro será conectado a uma entrada analógica no ESP32 para ler sua posição e ajustar os valores RGB de acordo.
Detalhes da Ficha Técnica
Fabricante
SunFounder
Número da peça
LED RGB
Tensão de lógica/IO
3,3 V
Tensão de alimentação
5 V
Corrente de saída (por canal)
20 mA
Corrente de pico (por canal)
30 mA
Orientação sobre frequência PWM
5 kHz
Limiares de lógica de entrada
0,3 V (baixo) / 2,7 V (alto)
Queda de tensão / RDS(on)/ saturação
1,8 V (típ.)
Limites térmicos
Temperatura de operação: -40°C a +85°C
Pacote
Furo passante
Notas / variantes
Configuração de ânodo comum
Use um resistor de 220 Ohms para cada canal de LED para limitar a corrente.
Garanta a tensão de alimentação adequada (5V) para o LED RGB.
Conecte o ânodo comum à fonte de tensão positiva.
Use PWM para controlar o brilho de cada cor de LED.
Tenha cuidado com a conexão do potenciômetro para evitar entradas flutuantes.
Verifique se o ESP32 está corretamente alimentado antes de fazer o upload do código.
Instruções de Fiação
Para conectar o LED RGB e o potenciômetro ao ESP32, comece conectando o pino do ânodo comum do LED RGB ao pino de alimentação de 3,3V no ESP32. Os pinos vermelho, verde e azul do LED RGB serão conectados aos pinos27,26, e25respectivamente. Certifique-se de colocar um resistor de 220 Ohms em série com cada pino de cor do LED para limitar a corrente e proteger o LED.
Em seguida, conecte o potenciômetro ao ESP32 ligando o pino da esquerda ao pino de alimentação de 3,3V, o pino da direita ao terra e o pino do meio a14no ESP32. Esta configuração permite que o ESP32 leia a tensão analógica do potenciômetro, que será usada para ajustar a cor do LED RGB com base em sua posição.
Exemplos de Código e Guia
Na função de configuração, definimos os pinos para o LED RGB e o potenciômetro, além de inicializar as configurações de PWM. O trecho de código a seguir mostra como configuramos os pinos do LED RGB:
const int redPin = 27;
const int greenPin = 26;
const int bluePin = 25;
void setup() {
ledcAttach(redPin, freq, resolution);
ledcAttach(greenPin, freq, resolution);
ledcAttach(bluePin, freq, resolution);
}
Neste trecho, definimos os pinos para os LEDs vermelho, verde e azul, e os conectamos aos canais PWM com uma frequência e resolução definidas.
A função loop lê o valor do potenciômetro e o converte em um valor de matiz, que é então usado para determinar os valores RGB. O seguinte trecho demonstra esse processo:
Este código lê o valor analógico do potenciômetro, o normaliza e calcula a tonalidade correspondente. Em seguida, chama oHUEtoRGBfunção para converter a matiz em valores RGB, que são passados para osetColorfunção para atualizar o LED.
Demonstração / O que Esperar
Após completar a ligação e fazer o upload do código, você deve ser capaz de girar o potenciômetro para mudar a cor do LED RGB suavemente. À medida que você gira o botão, o LED passará por várias cores com base no valor de matiz calculado a partir da posição do botão. Se o LED não acender ou se comportar de maneira inesperada, verifique as conexões e certifique-se de que o potenciômetro está conectado corretamente (no vídeo às 10:45).
Timestamps de Vídeo
00:00 Início
2:11 Introdução ao projeto
4:31 LED RGB
8:18 Cor RGB
12:18 Explicação da fiação
17:59 Código Arduino explicado
24:12 Selecionando a placa ESP32 e a porta COM no Arduino IDE
25:54 Demonstração
Imagens
ESP32_rgb_pin
ESP32_RGB_led_wires
potentiometer
ESO32-34_-Color-Gradient-wiring
ESO32-34_-Color-Gradient-schematic
ESO32-34_-Color-Gradient-main
ESP32_rgb_pin
ESP32_RGB_led_wires
potentiometer
ESO32-34_-Color-Gradient-wiring
ESO32-34_-Color-Gradient-schematic
ESO32-34_-Color-Gradient-main
835-ESP32 Tutorial 34/55- Arduino code for color gradient