// Pines para los LEDs (usar GPIO disponibles en ESP32)
const int ledPins[] = {2, 4, 5, 18, 19, 21, 22, 23}; // GPIO configurados para los LEDs
const int potPin = 34; // Pin analógico para el potenciómetro (GPIO34 - ADC1_CH6 en ESP32)
const int numLEDs = 8; // Número de LEDs
const float maxVoltage = 3.3; // Voltaje máximo del ADC en la ESP32
void setup() {
// Configuración de los pines como salidas
for (int i = 0; i < numLEDs; i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW); // Apagar los LEDs al inicio
}
Serial.begin(115200); // Inicializar la comunicación serial
}
void loop() {
int analogValue = analogRead(potPin); // Leer el valor analógico del potenciómetro
float voltage = (analogValue * maxVoltage) / 4095.0; // Convertir el valor ADC a voltaje (0-3.3V)
int ledsToLight = map(analogValue, 0, 4095, 0, numLEDs); // Determinar cuántos LEDs encender
// Encender/apagar LEDs según el valor del potenciómetro
for (int i = 0; i < numLEDs; i++) {
if (i < ledsToLight) {
digitalWrite(ledPins[i], HIGH); // Encender LED
} else {
digitalWrite(ledPins[i], LOW); // Apagar LED
}
}
// Enviar datos al monitor serial
Serial.print("Valor Analógico: ");
Serial.print(analogValue);
Serial.print(" | Voltaje: ");
Serial.print(voltage);
Serial.print("V | LEDs encendidos: ");
Serial.println(ledsToLight);
delay(100); // Pequeña pausa para estabilidad
}