Questa è la funzione da richiamare ogni secondo:
void updateDisplay() {
sevseg.setNumber(pellet); // stampiamo la lettura del sensore a ultrasuoni sul display
Serial.print(pellet); // stampiamo la lettura del sensore ad ultrasuoni sul pannello di arduino
Serial.println("cm");
sevseg.refreshDisplay();
// queste misure possono essere cambiate sostituendo i numeri e metterli a vostro piacere
// modificato come da suggerimento di Arco_500
if (pellet <= 40) { // accendiamo il primo led se la misura è sotto i 40 cm
digitalWrite (ledGreen, LOW);
digitalWrite (ledYellow, HIGH);
digitalWrite (ledRed, HIGH);
}
else if (pellet <= 41 && pellet >= 64) { // tra i 41 e i 64 cm facciamo accendere il secondo led
digitalWrite (ledGreen, HIGH);
digitalWrite (ledYellow, LOW);
digitalWrite (ledRed, HIGH);
}
else if (pellet > 65) { //dopo i 65 cm facciamo accendere il terzo led
digitalWrite (ledGreen, HIGH);
digitalWrite (ledYellow, HIGH);
digitalWrite (ledRed, LOW);
}
}
Qui invece la chiamata di updateDisplay():
if (millis() - timer >= 1000) { //sfruttando la funzione millis facciamo in modo che ogni 1000 ms dal reset della scheda
timer += 1000; // (o dall'avvio) avvenga una lettura del sensore di distanza
pellet = sr04.Distance();
updateDisplay();
}