Hallo,
Also so wie ich das verstehe, ist das erste sozusagen das Hauptprgramm und das zweite ist eine erweiterte Sensor Abfrage?
Ich hab (aus zeitmangel) nur kurz drübergeschaut.
delay(500); // delay in between reads for stability
//....
delay(500); // delay in between reads for stability
Dadurch dauert eine loop Schleife mind. 1 Sekunde.
BlinkWithoutDelay - so wie hier:
if((millis() - oldTime) > 1000) // Only process counters once per second
{
Grüße,
Donny