/* Potentiometer-dimmed LED Bar ------------------------ Dims LEDs connected to digital pins based on the value obtained from a 10k potentiometer connected to analog pin A2. Created November 2015 Joshuah Jest */ #define NUMREADINGS 6 // Number of readings (increase for a slow curve) #define minPot 0// Min resistance #define maxPot 600 // Max resistance const int firstLED = 2; const int lastLED = 11; int leds; int readings[NUMREADINGS]; int index = 0; int total = 0; int average = 0; int resistance = 0; int x = 0; int y = 0; void setup() { for (int r = 0; r < NUMREADINGS; r++) { readings[r] = 0; } for (int p = firstLED; p <= lastLED; p++) { pinMode(p, OUTPUT); } leds = (lastLED - firstLED) + 1; } void loop() { total -= readings[index]; readings[index] = analogRead(2); total += readings[index]; index++; if (index >= NUMREADINGS) { index = 0; } average = abs(total / NUMREADINGS); // ((1024 * 300) / 1000) = ~338 resistance = map(average, minPot, maxPot, 0, leds); for (int ledON = firstLED; ledON < (firstLED + resistance); ledON++) { digitalWrite(ledON, HIGH); } for (int ledOFF = (firstLED + resistance); ledOFF <= lastLED; ledOFF++) { digitalWrite(ledOFF, LOW); } }