const int LEDS = 10;
const int val_a[] = {102,204,306,408,510,612,714,816,918,1023};
int led_pin[] = {2,3,4,5,6,7,8,9,10,11};
void setup() {
Serial.begin(9600);
for (int i = 0; i < LEDS; i++) {
pinMode(led_pin[i], OUTPUT);
}
}
void loop() {
int val_pot = analogRead(A0);
int pul_1 = analogRead(A1);
int pul_2 = analogRead(A2);
delay(100);
if (pul_1 > 1 && pul_2 == 0) {
Entero(val_pot);
} else if (pul_2 > 1 && pul_1 == 0) {
punto_flotante(val_pot);
} else if (pul_1 == 0 && pul_2 == 0) {
party(val_pot);
} else {
apagar();
}
}
void Entero(int val_pot) {
for (int i = 0; i < LEDS; i++) {
digitalWrite(led_pin[i], val_pot >= val_a[i]);
}
}
void punto_flotante(int val_pot) {
for (int i = LEDS - 1; i >= 0; i--) {
if (val_pot >= val_a[i]) {
digitalWrite(led_pin[i], HIGH);
for (int j = 0; j < i; j++) {
digitalWrite(led_pin[j], LOW);
}
break;
} else {
digitalWrite(led_pin[i], LOW);
}
}
}
void apagar() {
for (int i = LEDS - 1; i >= 0; i--) {
digitalWrite(led_pin[i], LOW);
}
}
void party(int val_pot) {
Entero(val_pot);
delay(1000);
apagar();
delay(1000);
punto_flotante(val_pot);
delay(1000);
apagar();
}