Leitura analógica com ESP32

Posted by

O mundo ao nosso redor é analógico. Vamos aprender como fazer leituras de entrada analógica com ESP32, usando funções integradas. O código Arduino está pronto para aproveitar toda a energia necessária.

Este microcontrolador específico para este artigo (Xiao ESP32-C6 – para minha placa de desenvolvimento), é capaz de ler valores analógicos de até 12 bits e 3,3 V. Isso significa ler 4096 passos, ou 805 uV por passo. Isso é diferente do Arduino UNO, por exemplo, que pode ler valores de até 5 V em apenas 10 bits.

O circuito

Nossa placa com o ESP32-C6 possui três entradas analógicas, A0-A2, localizadas nos três primeiros pinos da PCB. Estou conectando um potenciômetro de 10k Ohm ao pino A0, como visto na imagem abaixo.

ESP32 com potenciômetro na entrada analógica
ESP32 com potenciômetro na entrada analógica

Obviamente, você pode conectar virtualmente qualquer sinal analógico a qualquer uma das três entradas, o que lhe dará condições para o sinal bem o suficiente. Isso significa, em geral, limitá-lo a 3,3 V e aterrá-lo no mesmo GND da placa.

O código

Peguei o código abaixo desta fonte, a página oficial do SeeedStudio Xiao ESP32-C6.

const int analogPin = A0; 

void setup() {
  // Initialize serial communication at 115200 bits per second
  Serial.begin(115200);
  
  // Set the resolution to 12 bits (0-4095)
  analogReadResolution(12);
  //analogSetWidth(12);
}

void loop() {
  // Read the analog value and millivolts for the analogPin
  int analogValue = analogRead(analogPin);
  int analogVolts = analogReadMilliVolts(analogPin);
  
  // Print the values to the Serial Monitor
  Serial.printf("ADC analog value = %d\n", analogValue);
  Serial.printf("ADC millivolts value = %d\n", analogVolts);
  
  delay(100); // Delay for clear reading from serial
}

Observe que eu uso “analogReadResolution(12)”, significando que a resolução para a entrada é de 12 bits. Fiz abaixo alguns testes com 10 bits para mostrar a diferença. Observe que ele deve ir de 0 a 1023, o que ele faz aproximadamente.

Pra fechar

Entrada analógica é a maneira como um microcontrolador pode “ouvir” o mundo externo, que é analógico. Aprender como aproveitar todo o seu poder é crucial para qualquer um que desenvolva sistemas embarcados.

Com tudo isso dito, até a próxima. Cuidem-se e fiquem seguros, todos.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *