void loop() {
trip_a = a * dist; // [m]
trip_b = b * dist; // [m]
odo = c * dist / 1000; // [km]
t_parz_a = (millis() - t0_a) / 1000; // [s]
t_parz_b = (millis() - t0_b) / 1000; // [s]
t_tot = millis() / 1000; // [s]
//v_act = (dist / delta_t) * 3600 * 1000 * 1000; // [km/h]
v_med = odo / (t_tot / 3600); // [km/h]
Serial.print(trip_a);
Serial.print(" ");
Serial.print(odo);
Serial.print(" ");
Serial.print(v_med);
Serial.println(" ");
if (digitalRead(switch_1) == LOW) { // visualizza le distanze su schermo 1 e 2
display2.showNumberDec(odo);
if (digitalRead(switch_4) == LOW) { // visualizza trip_a su schermo 1
display1.showNumberDec(trip_a);
}
if (digitalRead(switch_4) == HIGH) { // visualizza trip_b su schermo 1
display1.showNumberDec(trip_b);
}
}
if (digitalRead(switch_1) == HIGH) { // visualizza i tempi su schermo 1 e 2
// // esempio 4429 secondi
float numero = t_tot / 3200.0; // numero = 4429 / 3200 = 1.23
int ore = numero; // ore = 1
numero = (numero - ore) * 60.0; // numero = 0.23 * 60 = 13.8
int minuti = numero; // minuti = 13
// // esempio ore = 1 min = 13
float i = ore / 10.0; // i = 0.1
int ore_dec = i; // ore_dec = 0
i = (i - ore_dec) * 10.0; // i = 1.0
int ore_uni = i; // ore_uni = 1
float j = minuti / 10.0; // j = 1.3
int minuti_dec = j; // minuti_dec = 1
j = (j - minuti_dec) * 10.0; // j = 3.0
int minuti_uni = j; // minuti_uni = 3
int disp = ore_dec * 1000 + ore_uni * 100 + minuti_dec * 10 + minuti_uni;
display2.showNumberDecEx(disp, 0b11100000, true);
if (digitalRead(switch_4) == LOW) { // visualizza t_parz_a su schermo 1
// // esempio 429 secondi // esempio 43 secondi
float numero = t_parz_a / 60.0; // numero = 429 / 60 = 7.15 // numero = 0.716
int minuti = numero; // minuti = 7 // minuti = 0
numero = (numero - minuti) * 60.0; // numero = 0.15 * 60 = 9.0 // numero = 43.0
int secondi = numero; // secondi = 9 // secondi = 43
// // esempio min = 32 sec = 27 // esempio min = 5 sec = 9
float i = minuti / 10.0; // i = 3.2 // i = 0.5
int minuti_dec = i; // minuti_dec = 3 // minuti_dec = 0
i = (i - minuti_dec) * 10.0; // i = 2.0 // i = 5.0
int minuti_uni = i; // minuti_uni = 2 // minuti_uni = 5
float j = secondi / 10.0; // j = 2.7 // j = 0.9
int secondi_dec = j; // secondi_dec = 2 // secondi_dec = 0
j = (j - secondi_dec) * 10.0; // j = 7.0 // j = 9.0
int secondi_uni = j; // secondi_uni = 7 // secondi_uni = 9
int disp = minuti_dec * 1000 + minuti_uni * 100 + secondi_dec * 10 + secondi_uni;
display1.showNumberDecEx(disp, 0b11100000, true);
}
if (digitalRead(switch_4) == HIGH) { // visualizza t_parz_b su schermo 1
float numero = t_parz_b / 60.0;
int minuti = numero;
numero = (numero - minuti) * 60.0;
int secondi = numero;
float i = minuti / 10.0;
int minuti_dec = i;
i = (i - minuti_dec) * 10.0;
int minuti_uni = i;
float j = secondi / 10.0;
int secondi_dec = j;
j = (j - secondi_dec) * 10.0;
int secondi_uni = j;
int disp = minuti_dec * 1000 + minuti_uni * 100 + secondi_dec * 10 + secondi_uni;
display1.showNumberDecEx(disp, 0b11100000, true);
}
}
if (digitalRead(switch_2) == LOW) { // visualizza v_act su schermo 3
}
if (digitalRead(switch_2) == HIGH) { // visualizza v_med su schermo 3
// // esempio v_med = 43.54 // esempio v_med = 123.72
float v = (v_med * 10.0); // v = 435.4 // v = 1237.2
int disp = v; // disp = 435 // disp = 1237
display3.showNumberDecEx(disp, 0b00100000); // _43.5 // 123.7
}
if (digitalRead(azzera) == LOW) {
delay(azzeraDelay);
if (digitalRead(azzera) == LOW && digitalRead(switch_1) == LOW && digitalRead(switch_4) == LOW) {
a = 0;
}
if (digitalRead(azzera) == LOW && digitalRead(switch_1) == LOW && digitalRead(switch_4) == HIGH) {
b = 0;
}
if (digitalRead(azzera) == LOW && digitalRead(switch_1) == HIGH && digitalRead(switch_4) == LOW) {
t0_a = millis();
}
if (digitalRead(azzera) == LOW && digitalRead(switch_1) == HIGH && digitalRead(switch_4) == HIGH) {
t0_b = millis();
}
}
}