using namespace std;
#define A1 0
#define A2 4
#define A3 16
#define A4 17
#define A5 5
#define A6 18
#define A7 19
#define A8 21
#define A9 22
#define A10 23
void setup(){
pinMode(A1,OUTPUT);
pinMode(A2,OUTPUT);
pinMode(A3,OUTPUT);
pinMode(A4,OUTPUT);
pinMode(A5,OUTPUT);
pinMode(A6,OUTPUT);
pinMode(A7,OUTPUT);
pinMode(A8,OUTPUT);
pinMode(A9,OUTPUT);
pinMode(A10,OUTPUT);
Serial.begin(115200);
Serial.println("LED Bar Graph Control Ready. Send 0-9 or A.");
}
void TurnOff(){
digitalWrite(A1,0);
digitalWrite(A2,0);
digitalWrite(A3,0);
digitalWrite(A4,0);
digitalWrite(A5,0);
digitalWrite(A6,0);
digitalWrite(A7,0);
digitalWrite(A8,0);
digitalWrite(A9,0);
digitalWrite(A10,0);
}
void TurnOn(int c){
TurnOff();
for (uint8_t i=0;i<c;i++){
switch (i){
case 0:
digitalWrite(A1,1);
break;
case 1:
digitalWrite(A2,1);
break;
case 2:
digitalWrite(A3,1);
break;
case 3:
digitalWrite(A4,1);
break;
case 4:
digitalWrite(A5,1);
break;
case 5:
digitalWrite(A6,1);
break;
case 6:
digitalWrite(A7,1);
break;
case 7:
digitalWrite(A8,1);
break;
case 8:
digitalWrite(A9,1);
break;
}
}
if (c==10){
digitalWrite(A10,1);
}
}
void loop(){
if (Serial.available()){
char c=Serial.read();
if (c=='0'){
TurnOff();
}
else if (c=='a' || c=='A' || c=='1' || c=='2' || c=='3' || c=='4' || c=='5' || c=='6' || c=='7' || c=='8' || c=='9'){
int value;
switch(c){
case '1':
value=1;
break;
case '2':
value=2;
break;
case '3':
value=3;
break;
case '4':
value=4;
break;
case '5':
value=5;
break;
case '6':
value=6;
break;
case '7':
value=7;
break;
case '8':
value=8;
break;
case '9':
value=9;
break;
case 'a':
value=10;
break;
case 'A':
value=10;
break;
}
TurnOn(value);
Serial.print("LEDs set to: ");
Serial.println(value);
}
else{
Serial.println("Invalid command.");
}
}
}