int leds[] = {12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 13, A0, A1, A2, A3, A4, A5}; // Array Of leds // the setup function runs once when you press reset or power the board void setup() { //Initialization Serial.begin(9600); pinMode(13, OUTPUT); pinMode(12, OUTPUT); pinMode(11, OUTPUT); pinMode(10, OUTPUT); pinMode(9, OUTPUT); pinMode(8, OUTPUT); pinMode(7, OUTPUT); pinMode(6, OUTPUT); pinMode(5, OUTPUT); pinMode(4, OUTPUT); pinMode(3, OUTPUT); pinMode(2, OUTPUT); pinMode(A0, OUTPUT); pinMode(A1, OUTPUT); pinMode(A2, OUTPUT); pinMode(A3, OUTPUT); pinMode(A4, OUTPUT); pinMode(A5, OUTPUT); pinMode(A6, INPUT); pinMode(A7, INPUT); } void ledsOff() { // This function turns on all the leds for (int i = 0; i < 18; i++) { // For Loop digitalWrite(leds[i], LOW); } } void leftLedsOn(int threshold) { // This function turns on all the leds on the left side that come after a certain threshold for (int i = 0; i < threshold; i++) { // For Loop digitalWrite(leds[i], HIGH); } } void rightLedsOn(int threshold) { // This function turns on all the leds on the right side that come before a certain threshold for (int i = threshold; i >= 9; i--) { // For Loop digitalWrite(leds[i], HIGH); } } void individualLedBeat() { if (analogRead(A7) > 990) { ledsOff(); } else if (analogRead(A7) < 990) { leftLedsOn(1); rightLedsOn(18); } else if (analogRead(A7) < 880) { leftLedsOn(2); rightLedsOn(17); } else if (analogRead(A7) < 770) { leftLedsOn(3); rightLedsOn(16); } else if (analogRead(A7) < 660) { leftLedsOn(4); rightLedsOn(15); } else if (analogRead(A7) < 550) { leftLedsOn(5); rightLedsOn(14); } else if (analogRead(A7) < 440) { leftLedsOn(7); rightLedsOn(13); } else if (analogRead(A7) < 330) { leftLedsOn(8); rightLedsOn(12); } else if (analogRead(A7) < 220) { leftLedsOn(9); rightLedsOn(11); } else if (analogRead(A7) < 110) { leftLedsOn(10); rightLedsOn(10); } delayMicroseconds(350); } // the loop function runs over and over again forever void loop() { ledsOff(); Serial.println(analogRead(A7)); // Check the serial plotter for a graphical representation of mic data if (analogRead(A7) < 35) { rightLedsOn(9); leftLedsOn(18); delay(1); } else { individualLedBeat(); } }