Fermare un ciclo for.

dato che quì

if (i==5) {           //se la collisione forte dura da 50 loop
      digitalWrite(ledSms, HIGH);
      Serial.println ("Impatto avvenuto,sto inviando SMS");
      
      
      }

no stai azzerando i, e che NON invii controlli per i > 5, mandi l'SMS una sola volta..... o meglio, a meno che il loop non duri tanto che i supera il suo valore massimo e ricominci dall'arta prte fino a ritornare a 5... ovvero ogni 65536 loop