А @shuraf предлагает (как я понял), например, где раньше стоял delay, запомнить в oldTime время (millis()) и установить флаг ожидания (ну типа int gdem = 1 :)) . А дальше проверяем по if - если установлен флаг ожидания и (millis()- oldTime) меньше необходимого время ожидания - пропускаем...