#define LED_PIN 17
#define POT_PIN 13
#define PWM_FREQ 5000
#define PWM_RESOLUTION 8 // duty: 0..255
int ultimoValorADC = -1;
int ultimaPorcentagem = -1;
void setup() {
Serial.begin(115200);
pinMode(POT_PIN, INPUT);
// Configura PWM no pino do LED
ledcAttach(LED_PIN, PWM_FREQ, PWM_RESOLUTION);
}
void loop() {
// Leitura do ADC no ESP32: tipicamente 0..4095
int valorADC = analogRead(POT_PIN);
// Converte ADC para duty cycle PWM (0..255)
int duty = map(valorADC, 0, 4095, 0, 255);
// Converte ADC para porcentagem (0..100%)
int porcentagem = map(valorADC, 0, 4095, 0, 100);
// Atualiza o PWM do LED
ledcWrite(LED_PIN, duty);
// Mostra na serial apenas se houve mudança perceptível
if (valorADC != ultimoValorADC || porcentagem != ultimaPorcentagem) {
Serial.print("ADC = ");
Serial.print(valorADC);
Serial.print(" | Brilho = ");
Serial.print(porcentagem);
Serial.println("%");
ultimoValorADC = valorADC;
ultimaPorcentagem = porcentagem;
}
delay(100);
}