// SPDX-License-Identifier: MIT // Entrada analógica: ler um trimpot e imprimir o número na Serial (ESP32-S3 DevKitC-1 N16R8) // // Mesma ideia da versão do Uno. O que muda: 3,3 V no lugar de 5 V, 12 bits no lugar // de 10 e uma função que já devolve milivolts calibrados. // // Ligação: perna 1 do trimpot no 3V3, perna 3 no GND, cursor no GPIO4. // NUNCA alimente o trimpot pelo 5V: o pino desta placa é de 3,3 V e 5 V pode queimar o chip. // // GPIO4 é o ADC1_CH3. O ADC1 continua funcionando com o Wi-Fi ligado; o ADC2 (GPIO11 a // GPIO20) não pode ser usado junto com o Wi-Fi. // // Arduino IDE: placa "ESP32S3 Dev Module", PSRAM "OPI PSRAM", Flash Size "16MB (128Mb)", // USB CDC On Boot: "Enabled". const int PINO_TRIMPOT = 4; // GPIO4 = ADC1_CH3 const int INTERVALO_MS = 100; void setup() { Serial.begin(115200); // velocidade usual das placas ESP32 // analogReadResolution(10); // tire o comentário para receber 0 a 1023, como no Uno } void loop() { int valor = analogRead(PINO_TRIMPOT); // 0 a 4095 (12 bits, padrão do núcleo) uint32_t mV = analogReadMilliVolts(PINO_TRIMPOT); // a mesma leitura já em milivolts, calibrada Serial.print(valor); Serial.print('\t'); Serial.println(mV); delay(INTERVALO_MS); } // A atenuação padrão do núcleo mede até cerca de 3100 mV. Com o trimpot ligado no 3V3, // o topo do curso bate no teto antes do fim: dali em diante o número fica em 4095. // Acima de 2900 mV o erro calibrado do fabricante já não é garantido. // Prefira sempre analogReadMilliVolts() a converter o código na mão: ele usa a // calibração gravada de fábrica em cada chip.