ESP32 - medir tensão

Neste guia, vamos aprender como medir tensões de 0V a 16,5V usando um sensor de tensão com um ESP32. Vamos explicar os passos em detalhes.

ESP32 sensor de tensão

Sobre o Sensor de Tensão

Um Sensor de Tensão é um circuito divisor de tensão pronto que usa resistores específicos para facilitar a medição de tensão. Ele tem dois resistores: um de 30 KΩ e outro de 7,5 KΩ. Se o ADC tem uma tensão de referência de 5V, o sensor pode medir tensões de 0 a 25V DC. Quando a tensão de referência do ADC é 3,3V, ele pode medir tensões de 0 a 16,5V DC.

Pinagem

Um sensor de tensão vem com dois tipos de pinos:

  • Interface de Entrada (conecte onde você quer medir a tensão):
    • Pino VCC: Conecte este pino positivo ao ponto de tensão mais alta.
    • Pino GND: Conecte este pino negativo ao ponto de tensão mais baixa.
  • Interface de Saída (conecte ao ESP32):
    • Pino Vout (S): Conecte este pino de sinal a um pino analógico do ESP32.
    • Pino NC (+): Não conecte este pino; ele não é usado.
    • Pino GND (-): Conecte este pino de terra ao GND (0V) do ESP32.
    Pinagem do Sensor de Tensão
    image source: diyables.io

Diagrama de Ligação

Diagrama de Ligação do ESP32 com sensor de tensão

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

/* * 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-measure-voltage */ #define ANALOG_IN_PIN 36 // ESP32 pin GPIO36 (ADC0) connected to voltage sensor #define REF_VOLTAGE 3.3 #define ADC_RESOLUTION 4096.0 #define R1 30000.0 // resistor values in voltage sensor (in ohms) #define R2 7500.0 // resistor values in voltage sensor (in ohms) void setup() { Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { // read the analog input int adc_value = analogRead(ANALOG_IN_PIN); // determine voltage at adc input float voltage_adc = ((float)adc_value * REF_VOLTAGE) / ADC_RESOLUTION; // calculate voltage at the sensor input float voltage_in = voltage_adc * (R1 + R2) / R2; // print results to serial monitor to 2 decimal places Serial.print("Measured Voltage = "); Serial.println(voltage_in, 2); delay(500); }

Passos Rápidos

  • Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente do ESP32 no Arduino IDE.
  • Conecte o ESP32 ao sensor de tensão.
  • Conecte a placa ESP32 ao seu PC por um cabo USB
  • Abra o Arduino IDE no seu PC.
  • Selecione a placa ESP32 correta (por exemplo, ESP32 Dev Module) e a porta COM.
  • Copie e cole o código acima no Arduino IDE.
  • Pressione o botão Upload no Arduino IDE para compilar e carregar o código no ESP32.
  • Teste medindo 5V e 3,3V no ESP32.
  • Confira as leituras no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
Measured Voltage = 4.93 Measured Voltage = 4.93 Measured Voltage = 4.93 Measured Voltage = 4.93 Measured Voltage = 3.42 Measured Voltage = 3.42 Measured Voltage = 3.42 Measured Voltage = 3.42
Ln 11, Col 1
ESP32 Dev Module on COM15
2

Você pode notar que o resultado da medição está incorreto ou bem diferente do valor real. Não culpe o módulo sensor de tensão por isso. O código usa a função analogRead() para ler valores de um ADC (Conversor Analógico-Digital) conectado a um sensor de tensão. O ADC do ESP32 é adequado para projetos que não exigem 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 resultados corretos. Cada placa ESP32 pode variar um pouco, então a calibração é necessária para cada placa individualmente.
  • A calibração pode ser difícil, especialmente para iniciantes, e nem sempre fornece os resultados exatos que você quer.

Para projetos que exigem alta precisão, considere usar um ADC externo (por exemplo, o ADS1115) com o ESP32 ou um Arduino, que tem um ADC mais confiável. Se você 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!