ESP32 - Potenciômetro Aciona Relé

Este tutorial ensina você a usar o ESP32 com o potenciômetro para controlar o relé. Em detalhes:

Também vamos aprender a converter o valor analógico em tensão e depois usar o limite de tensão para controlar o relé:

Podemos ampliar este tutorial para usar o potenciômetro para controlar uma fita LED, uma sirene, uma lâmpada ou um motor... conectando-os ao relé.

Sobre o Relé e o Potenciômetro

Temos tutoriais específicos sobre relé e potenciômetro. Cada tutorial contém informações detalhadas e instruções passo a passo sobre pinagem do hardware, princípio de funcionamento, ligação ao ESP32, código ESP32... Saiba mais sobre eles nos links a seguir:

Diagrama de Ligação

Diagrama de Ligação do Potenciômetro e Relé com ESP32

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.

Código ESP32 - Limite Analógico

/* * 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-potentiometer-triggers-relay */ #define POTENTIOMETER_PIN 36 // ESP32 pin GPIO36 (ADC0) connected to Potentiometer pin #define RELAY_PIN 27 // ESP32 pin GPIO27 connected to Relay's pin #define ANALOG_THRESHOLD 1000 void setup() { // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); pinMode(RELAY_PIN, OUTPUT); // set ESP32 pin to output mode } void loop() { int analogValue = analogRead(POTENTIOMETER_PIN); // read the input on analog pin if (analogValue > ANALOG_THRESHOLD) digitalWrite(RELAY_PIN, HIGH); // turn on Relay else digitalWrite(RELAY_PIN, LOW); // turn off Relay }

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 por meio de 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.
  • Copie o código acima e cole-o na Arduino IDE.
  • Compile e carregue o código na placa ESP32 clicando no botão Upload na Arduino IDE
Carregar Código na Arduino IDE
  • Gire o potenciômetro
  • Veja a mudança de estado do relé

Explicação do Código Linha por Linha

O código ESP32 acima contém explicação linha por linha. Leia os comentários no código!

Código ESP32 - Limite de Tensão

O valor analógico lido do potenciômetro é convertido em tensão e, em seguida, a tensão é comparada com um limite de tensão. Se ultrapassar o limite, o relé é acionado

/* * 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-potentiometer-triggers-relay */ #define POTENTIOMETER_PIN 36 // ESP32 pin GPIO36 (ADC0) connected to Potentiometer pin #define RELAY_PIN 27 // ESP32 pin GPIO27 connected to Relay's pin #define VOLTAGE_THRESHOLD 2.5 // Voltages void setup() { // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); pinMode(RELAY_PIN, OUTPUT); // set ESP32 pin to output mode } void loop() { int analogValue = analogRead(POTENTIOMETER_PIN); // read the input on analog pin float voltage = floatMap(analogValue, 0, 1023, 0, 5); // Rescale to potentiometer's voltage if(voltage > VOLTAGE_THRESHOLD) digitalWrite(RELAY_PIN, HIGH); // turn on Relay else digitalWrite(RELAY_PIN, LOW); // turn off Relay } float floatMap(float x, float in_min, float in_max, float out_min, float out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; }

※ Nota:

Este tutorial usa a função analogRead() para ler valores de um ADC (Conversor Analógico-Digital) conectado a um potenciômetro. O ADC do ESP32 é bom para projetos que NÃO precisam de alta precisão. No entanto, para projetos que precisam de medições precisas, observe:

  • O ADC do ESP32 não é perfeitamente preciso e pode precisar de calibração para obter resultados corretos. Cada placa ESP32 pode ser um pouco diferente, então você precisa calibrar o ADC para cada placa individualmente.
  • A calibração pode ser difícil, especialmente para iniciantes, e nem sempre pode fornecer os resultados exatos que você deseja.

Para projetos que precisam de alta precisão, considere usar um ADC externo (por exemplo, ADS1115) com o ESP32 ou usar um Arduino, que tem um ADC mais confiável. Se ainda quiser calibrar o ADC do ESP32, consulte o ESP32 ADC Calibration Driver

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!