#define LED_BUILTIN 2 // GPIO2 es el pin del LED integrado en la mayoría de placas ESP32
// --- Opcional: Definir A0 para compatibilidad ---
#define A0 36 // GPIO36 = entrada analógica principal en ESP32
// Variables of the blink task.
unsigned long last_blink_time;
int blink_interval = 200;
// Variables of the print task.
unsigned long last_print_time;
int print_interval = 1000;
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
// ⚙️ Opcional: Configurar resolución ADC a 10 bits (como Arduino Uno)
analogReadResolution(10); // Rango 0-1023 (en lugar de 0-4095)
// Initialize last_time variables.
last_blink_time = millis();
last_print_time = millis();
// ⚠️ Configurar pin A0 (GPIO36) como entrada (aunque no es obligatorio para ADC)
pinMode(A0, INPUT);
}
void loop() {
// Leer valor del potenciómetro o sensor en GPIO36 (A0)
blink_interval = analogRead(A0);
// Evitar intervalos demasiado pequeños (evita parpadeo incontrolable o cero)
if (blink_interval < 10) blink_interval = 10;
// Check if it is time to run the blink task.
if (millis() - last_blink_time >= blink_interval) {
// Update the last blink time.
last_blink_time += blink_interval;
// Execute the blink task.
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}
// Check if it is time to run the print task.
if (millis() - last_print_time >= print_interval) {
// Update the last print time.
last_print_time += print_interval;
// Execute the print task.
Serial.println("Tick");
}
}