int led1=13, led2=12,led3=11, led4=10, led5=9, led6 = 8, led7 = 7, led8 = 6; //Defines all the pins. void setup() { pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(led4, OUTPUT); pinMode(led5, OUTPUT); pinMode(led6, OUTPUT); pinMode(led7, OUTPUT); pinMode(led8, OUTPUT); Serial.begin(9600); } int loops = 0, overall = 0, avrg = 0; void loop() { int input; if (Serial.available() > 0) { input = Serial.read() - '0'; //Takes input } if (input != 0) loops++; //makes sure that input is not 0. If it is, it will not be counted overall += input; //Adds the input to overall avrg = overall/loops; //Averages it. if (loops == 10) { avrg--; //Decreases avereage by one. Remember in the perl script how we increase it by one? if (avrg > 0) {digitalWrite(led1, HIGH);} else {digitalWrite(led1, LOW);} if (avrg > 1) {digitalWrite(led2, HIGH);} else {digitalWrite(led2, LOW);} if (avrg > 2) {digitalWrite(led3, HIGH);} else {digitalWrite(led3, LOW);} if (avrg > 3) {digitalWrite(led4, HIGH);} else {digitalWrite(led4, LOW);} if (avrg > 4) {digitalWrite(led5, HIGH);} else {digitalWrite(led5, LOW);} if (avrg > 5) {digitalWrite(led6, HIGH);} else {digitalWrite(led6, LOW);} if (avrg > 6) {digitalWrite(led7, HIGH);} else {digitalWrite(led7, LOW);} if (avrg > 7) {digitalWrite(led8, HIGH);} else {digitalWrite(led8, LOW);} //Make the graph loops = 0; overall = 0; Serial.print("Trying to write: "); Serial.print(avrg); Serial.print("\n"); } }