/*
Baseado no exemplo LED bar graph by Tom Igoe (2010)
https://wokwi.com/arduino/projects/309829489359061570
*/
const int analogPin = A0; // pino do potenciometro
const int ledCount = 10; // número de LEDs da barra grafica
int ledPins[] = {11, 10, 9, 8, 7, 6, 5, 4, 3, 2}; // matriz com os pinos onde os LEDs estao conectados
void setup() {
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
pinMode(ledPins[thisLed], OUTPUT);
}
} // coloca todos os pinos do array no modo output
void loop() {
int sensorReading = analogRead(analogPin); // lê o potenciometro
int ledLevel = map(sensorReading, 0, 1023, 0, ledCount); // mapeia o resultado entre 0 e o n de LEDs
for (int thisLed = 0; thisLed < ledCount; thisLed++) { // varre a matriz de LEDs
if (thisLed < ledLevel) { // se o nível lido for maior que a posição do LED na matriz
digitalWrite(ledPins[thisLed], HIGH); // acende o LED
}
else { // caso contrário
digitalWrite(ledPins[thisLed], LOW); // desliga o resto dos pinos
}
}
}