ESP32 PWM: Varredura de Velocidade para Controle Preciso

A varredura de velocidade é uma técnica amplamente utilizada em sistemas de controle e automação para testar, calibrar e demonstrar o comportamento de dispositivos como motores, LEDs e outros atuadores que respondem a variações de sinal. No contexto do ESP32, essa prática permite explorar os recursos de PWM (Pulse Width ModulationConfiguração de PWM e FrequênciaConfiguração de PWM e FrequênciaAprenda a configurar e ajustar o PWM no ESP32 com exemplos práticos para controlar LEDs, motores e servomotores em projetos IoT.) para controlar a velocidade de motores ou a intensidade luminosa de LEDs de forma gradual e precisa. Neste artigo, vamos desenvolver um exemplo prático de varredura de velocidade utilizando o ESP32, demonstrando como implementar, testar e otimizar essa funcionalidade em seus projetos.

Objetivos do Exemplo🔗

Conceitos Fundamentais🔗

O que é PWM?

PWM (Pulse Width ModulationConfiguração de PWM e FrequênciaConfiguração de PWM e FrequênciaAprenda a configurar e ajustar o PWM no ESP32 com exemplos práticos para controlar LEDs, motores e servomotores em projetos IoT.) é uma técnica para obter resultados analógicos utilizando meios digitais. Por meio da variação da largura de pulso de um sinal digital, é possível controlar a potência média entregue a uma carga, como um motor ou LED.

Por que Usar PWM no ESP32?

O ESP32 possui diversos canais PWM (conhecidos como LEDC - LED Control) que permitem controlar múltiplos dispositivos simultaneamente com alta precisão e frequênciaConfiguração de PWM e FrequênciaConfiguração de PWM e FrequênciaAprenda a configurar e ajustar o PWM no ESP32 com exemplos práticos para controlar LEDs, motores e servomotores em projetos IoT. ajustável.

Componentes Necessários🔗

Montagem do Circuito🔗

Controlando um LED com PWM

Esquema de Ligação:

1. Conecte o anodo do LED ao pino GPIOInteração com GPIOs via Interface Web no ESP32Interação com GPIOs via Interface Web no ESP32Aprenda a configurar e controlar os GPIOs do ESP32 por meio de uma interface web dinâmica realizando automação, monitoramento e interação remota com facilidade. selecionado do ESP32 (exemplo: GPIO 5) através de um resistor de 220Ω.

2. Conecte o catodo do LEDDesafios Práticos: Experimentando com Múltiplos LEDsDesafios Práticos: Experimentando com Múltiplos LEDsAprenda a controlar múltiplos LEDs com ESP32 em projetos IoT. Descubra desafios práticos, montagem de circuitos, programação e efeitos visuais incríveis! ao GNDConectando Sensores de Movimento PIR ao ESP32Conectando Sensores de Movimento PIR ao ESP32Aprenda a integrar sensores PIR com ESP32 neste tutorial completo, explorando montagem, ajustes e programação na Arduino IDE. do ESP32O que é o ESP32: Introdução e Conceitos BásicosO que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia!.

Controlando um Motor DC com PWM

Esquema de Ligação:

1. Conecte o dreno do transistor MOSFET ao polo negativo do motor.

2. Conecte o fonte do MOSFET ao GNDConectando Sensores de Movimento PIR ao ESP32Conectando Sensores de Movimento PIR ao ESP32Aprenda a integrar sensores PIR com ESP32 neste tutorial completo, explorando montagem, ajustes e programação na Arduino IDE. comum (ESP32O que é o ESP32: Introdução e Conceitos BásicosO que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! e fonte do motor).

3. Conecte o polo positivo do motor à fonte de alimentaçãoSelecionando Componentes de Hardware para o Sistema de Alarme com ESP32Selecionando Componentes de Hardware para o Sistema de Alarme com ESP32Descubra como selecionar os melhores componentes de hardware para criar um sistema de alarme com ESP32. Tutorial prático com dicas de segurança e eficiência. positiva.

4. Conecte o gate do MOSFET ao pino GPIOInteração com GPIOs via Interface Web no ESP32Interação com GPIOs via Interface Web no ESP32Aprenda a configurar e controlar os GPIOs do ESP32 por meio de uma interface web dinâmica realizando automação, monitoramento e interação remota com facilidade. selecionado do ESP32 (exemplo: GPIO 5) através de um resistor de 1kΩ.

5. Assegure-se de que os GNDs do ESP32O que é o ESP32: Introdução e Conceitos BásicosO que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! e da fonte do motor estejam conectados.

Atenção: Sempre verifique a correnteDesafios Práticos: Experimentando com Múltiplos LEDsDesafios Práticos: Experimentando com Múltiplos LEDsAprenda a controlar múltiplos LEDs com ESP32 em projetos IoT. Descubra desafios práticos, montagem de circuitos, programação e efeitos visuais incríveis! e a tensão do motor para selecionar adequadamente o MOSFET e evitar danos ao ESP32.

Programação no ESP32🔗

Configurando o PWM no ESP32

O ESP32 utiliza o driver LEDC para controlar saídas PWM. Vamos iniciar configurando o canal PWMConfiguração de PWM e FrequênciaConfiguração de PWM e FrequênciaAprenda a configurar e ajustar o PWM no ESP32 com exemplos práticos para controlar LEDs, motores e servomotores em projetos IoT..

// Definições dos pinos e canais
const int pwmChannel = 0;
const int pwmFreq = 5000; // Frequência em Hz
const int pwmResolution = 8; // Resolução de 8 bits (0-255)
const int pwmPin = 5; // Pino GPIO utilizado
void setup() {
  // Configura o canal PWM
  ledcSetup(pwmChannel, pwmFreq, pwmResolution);
  // Anexa o canal ao pino selecionado
  ledcAttachPin(pwmPin, pwmChannel);
}
void loop() {
  // Código será adicionado nas próximas seções
}

Implementando a Varredura de Velocidade

A varredura consiste em aumentar e diminuir gradualmente o valor do duty cycleConfiguração de PWM e FrequênciaConfiguração de PWM e FrequênciaAprenda a configurar e ajustar o PWM no ESP32 com exemplos práticos para controlar LEDs, motores e servomotores em projetos IoT. do PWM, controlando assim a velocidade do motor ou a intensidade do LED.

void loop() {
  // Aumenta gradualmente o duty cycle
  for(int dutyCycle = 0; dutyCycle <= 255; dutyCycle++){
    ledcWrite(pwmChannel, dutyCycle);
    delay(10); // Ajuste para controlar a velocidade da varredura
  }
  // Diminui gradualmente o duty cycle
  for(int dutyCycle = 255; dutyCycle >= 0; dutyCycle--){
    ledcWrite(pwmChannel, dutyCycle);
    delay(10); 
  }
}

Explicação do Código

Ajustes e Otimizações🔗

Controlando a Velocidade da Varredura

// Varredura mais rápida
for(int dutyCycle = 0; dutyCycle <= 255; dutyCycle += 5){
  ledcWrite(pwmChannel, dutyCycle);
  delay(5); 
}

Alterando a Frequência PWM

Dependendo do dispositivo controlado, pode ser necessário ajustar a frequênciaConfiguração de PWM e FrequênciaConfiguração de PWM e FrequênciaAprenda a configurar e ajustar o PWM no ESP32 com exemplos práticos para controlar LEDs, motores e servomotores em projetos IoT. do PWM.

const int pwmFreq = 1000; // Frequência ajustada para 1kHz

Testes e Verificação🔗

Observando o Comportamento

Utilizando um Osciloscópio

Para verificar o sinal PWM, utilize um osciloscópio conectado ao pino de saída PWMDesafios Práticos: Experimentando com Múltiplos LEDsDesafios Práticos: Experimentando com Múltiplos LEDsAprenda a controlar múltiplos LEDs com ESP32 em projetos IoT. Descubra desafios práticos, montagem de circuitos, programação e efeitos visuais incríveis!.

Possíveis Problemas e Soluções🔗

O Motor Não Gira

O LED Não Varia de Intensidade

Ruído no Motor

  • Diodo de Roda Livre: Considere adicionar um diodo em paralelo com o motor para evitar picos de tensão.
  • Filtragem: Capacitores podem ser adicionados para reduzir ruídos elétricos.

Expandindo o Projeto🔗

Controlando Múltiplos Dispositivos

O ESP32 suporta vários canais PWMConfiguração de PWM e FrequênciaConfiguração de PWM e FrequênciaAprenda a configurar e ajustar o PWM no ESP32 com exemplos práticos para controlar LEDs, motores e servomotores em projetos IoT.. Você pode controlar mais de um motor ou LED simultaneamente.

// Exemplo para dois LEDs
const int pwmChannel1 = 0;
const int pwmChannel2 = 1;
const int pwmPin1 = 5;
const int pwmPin2 = 18;
void setup() {
  ledcSetup(pwmChannel1, pwmFreq, pwmResolution);
  ledcAttachPin(pwmPin1, pwmChannel1);
  ledcSetup(pwmChannel2, pwmFreq, pwmResolution);
  ledcAttachPin(pwmPin2, pwmChannel2);
}

Integração com Sensores

A varredura de velocidade pode ser controlada por sensores, como potenciômetrosLeitura de Potenciômetros e Sensores de TemperaturaLeitura de Potenciômetros e Sensores de TemperaturaConfigure o ESP32 para ler potenciômetros e sensores de temperatura com alta precisão, aplicando calibração e filtragem para medições confiáveis. ou sensores de proximidade.

int sensorPin = 34; // Pino analógico
int sensorValue = 0;
void loop() {
  sensorValue = analogRead(sensorPin);
  int dutyCycle = map(sensorValue, 0, 4095, 0, 255);
  ledcWrite(pwmChannel, dutyCycle);
  delay(10);
}

Interface com Aplicativos ou Interfaces Web

Utilize o Wi-Fi ou BluetoothControle de Dispositivos com ESP32 via BluetoothControle de Dispositivos com ESP32 via BluetoothDescubra como controlar dispositivos com ESP32 via Bluetooth em projetos IoT. Aprenda a configurar circuitos e programar funcionalidades de automação. do ESP32 para controlar a varredura de velocidade remotamente.

Boas Práticas🔗

Conclusão🔗

A varredura de velocidade é uma ferramenta poderosa que permite testar e demonstrar o comportamento de dispositivos controladosControle de Dispositivos com ESP32 via BluetoothControle de Dispositivos com ESP32 via BluetoothDescubra como controlar dispositivos com ESP32 via Bluetooth em projetos IoT. Aprenda a configurar circuitos e programar funcionalidades de automação. pelo ESP32. Ao compreender e implementar o controle PWM, você expande significativamente as possibilidades de seus projetos, seja em automação residencial, robótica ou sistemas embarcados. Este exemplo prático serve como base para desenvolvimentos mais complexos, incentivando a exploração das capacidades avançadas do ESP32.

Com a capacidade de controlar múltiplos dispositivos simultaneamente e integrar sensores e interfaces de comunicação, o ESP32 se apresenta como uma solução completa para projetos que exigem controle preciso e conectividade. Esperamos que este guia tenha fornecido insights valiosos e encorajado você a continuar explorando as funcionalidades deste versátil microcontroladorCaracterísticas Técnicas e Funcionalidades do ESP32Características Técnicas e Funcionalidades do ESP32Descubra as especificações completas e os recursos avançados do ESP32, a plataforma ideal para automação, IoT e projetos modernos com segurança..


Próximos Passos:

Lembre-se de sempre seguir as normas de segurançaSegurança em MQTT: Autenticação e Criptografia no ESP32Segurança em MQTT: Autenticação e Criptografia no ESP32Descubra como proteger conexões MQTT em aplicações IoT com ESP32, implementando autenticação e criptografia TLS para segurança máxima. ao trabalhar com eletrônica e eletricidade, garantindo a integridade do seu sistema e a sua própria.

Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.

Referências🔗

Compartilhar artigo

Artigos Relacionados