posso dire che secondo me un codice simile mi pare una grande perdita di spazio e di funzionalita? ;)
fai 5 if che hanno la stessa funzione alla fine, quindi perchè non creare un for che incrementi il valore di 150 ogni ciclo?
intendo una roba del tipo
// da mettere fuori dalle funzioni
int l[] = {13, 12, 10, 9, 8, 7, 6, 5, 4, 3, 2}; // pin dei led, è un array che sostituisce LED1, LED2 ecc... ricorda che gli array partono da 0 e non 1
int c = 0; // index per l'array
....
// parte da mettere nel loop
for(int i=150; i=950; i+=100) {
if (average > i){
digitalWrite(l[c], HIGH);
}
else{
digitalWrite(l[c], LOW);
}
c++; // prossimo ciclo per il prossimo led
}
c = 0; // resetto l'index per il prossimo loop
ed in 12 righe hai riscritto questo:
if (average > 150){
digitalWrite(LED2, HIGH);
}
else{
digitalWrite(LED2, LOW);
}
if (average > 250){
digitalWrite(LED3, HIGH);
}
else{
digitalWrite(LED3, LOW);
}
if (average > 350){
digitalWrite(LED4, HIGH);
}
else{
digitalWrite(LED4, LOW);
}
if (average > 450){
digitalWrite(LED5, HIGH);
}
else{
digitalWrite(LED5, LOW);
}
if (average > 550){
digitalWrite(LED6, HIGH);
}
else{
digitalWrite(LED6, LOW);
}
if (average > 650){
digitalWrite(LED7, HIGH);
}
else{
digitalWrite(LED7, LOW);
}
if (average > 750){
digitalWrite(LED8 ,HIGH);
}
else{
digitalWrite(LED8, LOW);
}
if (average > 950){
digitalWrite(LED9, HIGH);
}
else{
digitalWrite(LED9, LOW);
}
anche la parte nel setup può essere rifatta nello stesso modo:
for(int i=2; i=13; i++) pinMode(i, OUTPUT);
ed hai sostituito
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
ormai il codice funziona quindi vale la pena ottimizzarlo XD