     if(servoPos < servoCenter) { rangeRight = range; }
 }
 
-
 bool GetObstacle()
 {
     if(analogRead(obstaclePin) < 500)
     {
+        // TODO: check if we really need servoTriggerObstacleDelayFlag
+        if(!servoTriggerActive && servoTriggerObstacleDelayFlag)
+        {
+            servoTriggerObstacleDelayFlag = false;
+            return false;
+        }
+
+        servoTriggerObstacleDelayFlag = true;
         return true;
     }
+    servoTriggerObstacleDelayFlag = true;
     return false;
 }
 

    uint32_t uptime = millis();
    uint8_t servoPos = ServoMotor.read();


    Serial.print(servoPos);
    Serial.print(" - ");
    Serial.print(rangeLeft);

            servoLastScan = RIGHT;
        }
    }
    if(uptime % interval > intervalRange)
    {
        servoTriggerActive = true;
    }

    if(servoPos >= servoTiltLeft || servoPos <= servoTiltRight)
    {
        servoCountHelper--;
    }

    if(servoCountHelper <= 0)
    {
        servoCountHelper = 5;
