Boton de panico y deteccion de obstaculos

Hola
¿Podrías brindarme ayuda con mi código?
Estoy realizando un proyecto el cual consiste en la utilización de un Adafruit FONA 808 Cellular + GPS Breakout el cual esta programado para funcionar como un botón de pánico el cual manda un MSN a un numero de celular con las coordenadas del lugar en el que fue presionado el botón; También estoy utilizando un sensor ultrasonido Max-Sonar HRLV-EZ0 el cual puede detectar la distancia entre el sensor y algún obstáculo con alta precisión, el cual mediante un mini motor vibrador de disco responderá variando su vibración de acuerdo a las lecturas del dicho sensor;
Cada código por separado de cada una de estas partes funciona correctamente, el problema viene a la hora de juntar los 2 códigos, específicamente al presionar el botón de pánico ya que al hacerlo este envía el SMS pero solo con la mitad de las coordenadas y las mediciones del sensor se vuelven inestables y se queda en un estado de vibración fuerte o bajo según las mediciones que estaba tomando mientras se presionaba el motor.
Me gustaría saber si alguien pudiera guiarme en el tema para encontrar una posible solución ya que he investigado algo sobre posibles soluciones como retrasos con milis pero la verdad no he sabido aplicarlos bien.
De antemano gracias por leer mi post.
Anexo mi codigo

 #include "Adafruit_FONA.h"
#include <SoftwareSerial.h>
#define FONA_RX 2
#define FONA_TX 3
#define FONA_RST 4
 
#include <SoftwareSerial.h>
SoftwareSerial fonaSS = SoftwareSerial(FONA_TX, FONA_RX);
SoftwareSerial *fonaSerial = &fonaSS;

// Usa esto para FONA 800 y 808s
Adafruit_FONA fona = Adafruit_FONA(FONA_RST);

// para respuestas más tarde
char replybuffer[255];
uint8_t readline(char *buff, uint8_t maxbuff, uint16_t timeout = 0);
uint8_t type;

unsigned long previousMillis = 0; 

const long interval = 1000;  
const int buttonPin = 8;  
const int BuzzerPin = 11;
int pwm = 10;
float motor;

 
void setup() {
  {
    Serial.begin(115200); // Inicia la comunicación serial
    pinMode(pwm,OUTPUT);
    pinMode(motor,OUTPUT);
}
  while (! Serial);
  Serial.begin(115200);
  Serial.println(F("Inicializando FONA... (Puede tardar algunos segundos)"));
 
  fonaSerial->begin(4800);
  if (! fona.begin(*fonaSerial)) {
    Serial.println(F("No se puede encontrar FONA"));
    while(1);
  }
  Serial.println(F("FONA esta BIEN"));
  // Intenta habilitar GPRS
 
  Serial.println(F("Habilitando GPS..."));
  fona.enableGPS(true);
  delay(4000);
  
  pinMode(BuzzerPin, OUTPUT);
}
 
void loop() {
  unsigned long currentMillis = millis();
   if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
  {
   int analogValue = analogRead(0);
   int analogValue1= analogValue*1;
   motor = (analogRead(0));
   Serial.print("Distancia ");
   Serial.println(motor);
   analogWrite(pwm,-(analogRead(0)));
   delay(150);
   Serial.println(analogValue);
   delay(10);
}
  
  int buttonState;    
  buttonState = digitalRead(buttonPin);
  
 // si se mantiene presionado el botón (es decir, el pánico)
  if (buttonState == LOW)  {
 
      // obtener la ubicación gps
      float latitude, longitude;// variables para mantener lecturas GPS iniciales
      boolean gps_success = fona.getGPS(&latitude, &longitude);
      if (gps_success) {
        Serial.print("GPS lat:");
        Serial.println(latitude, 6);
        Serial.print("GPS long:");
        Serial.println(longitude, 6);
 
      //enviar SMS
      char message[141];  
      char LAT1[10];// cadena de latitud larga sin analizar y desbordante
      char LAT[10];
      char LONG[10];
      dtostrf(latitude, 10, 7, LAT1); // recopilar datos de GPS en un formato que se puede enviar
      dtostrf(longitude, 10, 7, LONG);
      
     // inicializa la matriz deseada de una matriz no analizada
      for(int i = 0; i < 9; i++) {
      LAT[i] = LAT1[i];
      }
      LAT[9] = '\0';// truncar la matriz al último valor deseado
      sprintf(message, "¡PULSE MI BOTON DE PANICO!¡NECESITO AYUDA! https://www.google.com/maps?q=%s,%s", LAT, LONG);
      
      Serial.println(LAT);Serial.println(LAT1);Serial.println(LONG);
      Serial.println(message) ;    // imprime el mensaje en el monitor serial antes de enviar
 
      char sendto[21] = "+523334492748"; // pone el número de teléfono de destino deseado para sms aquí
      fona.sendSMS(sendto, message) ; // envía el mensaje por SMS}
 
     // SE ENCIENDE EL BUZZER DURANTE 5 SEGUNDOS PARA NOTIFICAR QUE EL TEXTO ENVIADO
      for (int i = 0; i < 5; i++){
      digitalWrite(BuzzerPin, HIGH);
      delay(1000);
      digitalWrite(BuzzerPin, LOW);
      delay(1000);
      }
      } else {
        Serial.println("Esperando el arreglo FONA GPS 3D ...");
      }
      
     // Verifica la red, luego GPRS
      Serial.println(F("Comprobando la red celular ..."));
      if (fona.getNetworkStatus() == 1) {
       // red y GPRS? ¡Estupendo! Imprima la ubicación GSM para comparar
        float latitude, longitude;
        boolean gsmloc_success = fona.getGSMLoc(&latitude, &longitude);
        if (gsmloc_success) {
          Serial.print("GSMLoc lat:");
          Serial.println(latitude, 6);
          Serial.print("GSMLoc long:");
          Serial.println(longitude, 6);          

      } else {
        Serial.println("La ubicación GSM falló ...");
        Serial.println(F("Desactivando GPRS"));
        fona.enableGPRS(false);
        Serial.println(F("Habilitando GPRS"));
        if (!fona.enableGPRS(true)) {
        Serial.println(F("Error al encender GPRS "));  
          }
        }
      }
   }
}

Faltan y sobran llaves. Lo primero que tienes que hacer en darle Auto formato (Ctrl+T) desde el IDE.

#include "Adafruit_FONA.h"
#include <SoftwareSerial.h>
#define FONA_RX 2
#define FONA_TX 3
#define FONA_RST 4

#include <SoftwareSerial.h>
SoftwareSerial fonaSS = SoftwareSerial(FONA_TX, FONA_RX);
SoftwareSerial *fonaSerial = &fonaSS;

// Usa esto para FONA 800 y 808s
Adafruit_FONA fona = Adafruit_FONA(FONA_RST);

// para respuestas más tarde
char replybuffer[255];
uint8_t readline(char *buff, uint8_t maxbuff, uint16_t timeout = 0);
uint8_t type;
unsigned long previousMillis = 0; 

const long interval = 1000;  
const int buttonPin = 8;  
const int BuzzerPin = 11;
int pwm = 10;
float motor;

void setup() {
	//{    este sobra
	Serial.begin(115200); // Inicia la comunicación serial
	pinMode(pwm,OUTPUT);
	pinMode(motor,OUTPUT);
	//}    este sobra
	while (!Serial);
	Serial.begin(115200);
	Serial.println(F("Inicializando FONA... (Puede tardar algunos segundos)"));

	fonaSerial->begin(4800);
	if (!fona.begin(*fonaSerial)) {
		Serial.println(F("No se puede encontrar FONA"));
		while(1);
	}
	Serial.println(F("FONA esta BIEN"));
	// Intenta habilitar GPRS

	Serial.println(F("Habilitando GPS..."));
	fona.enableGPS(true);
	delay(4000);
	pinMode(BuzzerPin, OUTPUT);
}

void loop() {
	unsigned long currentMillis = millis();
	if (currentMillis - previousMillis >= interval) {
		previousMillis = currentMillis;
		//{   este sobra
		int analogValue = analogRead(0);
		int analogValue1= analogValue*1;
		motor = (analogRead(0));
		Serial.print("Distancia ");
		Serial.println(motor);
		analogWrite(pwm,-(analogRead(0)));
		delay(150);
		Serial.println(analogValue);
		delay(10);
	}

	int buttonState;    
	buttonState = digitalRead(buttonPin);

	// si se mantiene presionado el botón (es decir, el pánico)
	if (buttonState == LOW){

		// obtener la ubicación gps
		float latitude, longitude;// variables para mantener lecturas GPS iniciales
		boolean gps_success = fona.getGPS(&latitude, &longitude);
		if (gps_success) {
			Serial.print("GPS lat:");
			Serial.println(latitude, 6);
			Serial.print("GPS long:");
			Serial.println(longitude, 6);

			//enviar SMS
			char message[141];  
			char LAT1[10];// cadena de latitud larga sin analizar y desbordante
			char LAT[10];
			char LONG[10];
			dtostrf(latitude, 10, 7, LAT1); // recopilar datos de GPS en un formato que se puede enviar
			dtostrf(longitude, 10, 7, LONG);
			
			// inicializa la matriz deseada de una matriz no analizada
			for (int i = 0; i < 9; i++) {
				LAT[i] = LAT1[i];
			}
			LAT[9] = '\0';// truncar la matriz al último valor deseado
			sprintf(message, "¡PULSE MI BOTON DE PANICO!¡NECESITO AYUDA! https://www.google.com/maps?q=%s,%s", LAT, LONG);
			
			Serial.println(LAT);Serial.println(LAT1);Serial.println(LONG);
			Serial.println(message) ;    // imprime el mensaje en el monitor serial antes de enviar

			char sendto[21] = "+523334492748"; // pone el número de teléfono de destino deseado para sms aquí
			fona.sendSMS(sendto, message) ; // envía el mensaje por SMS}

			// SE ENCIENDE EL BUZZER DURANTE 5 SEGUNDOS PARA NOTIFICAR QUE EL TEXTO ENVIADO
			for (int i = 0; i < 5; i++){
				digitalWrite(BuzzerPin, HIGH);
				delay(1000);
				digitalWrite(BuzzerPin, LOW);
				delay(1000);
			}
		}else{
			Serial.println("Esperando el arreglo FONA GPS 3D ...");
		}
		
		// Verifica la red, luego GPRS
		Serial.println(F("Comprobando la red celular ..."));
		if (fona.getNetworkStatus() == 1) {
			// red y GPRS? ¡Estupendo! Imprima la ubicación GSM para comparar
			float latitude, longitude;
			boolean gsmloc_success = fona.getGSMLoc(&latitude, &longitude);
			if (gsmloc_success) {
				Serial.print("GSMLoc lat:");
				Serial.println(latitude, 6);
				Serial.print("GSMLoc long:");
				Serial.println(longitude, 6);          
			}else{
				Serial.println("La ubicación GSM falló ...");
				Serial.println(F("Desactivando GPRS"));
				fona.enableGPRS(false);
				Serial.println(F("Habilitando GPRS"));
				if (!fona.enableGPRS(true)) {
					Serial.println(F("Error al encender GPRS "));  
				}
			}
		}
	}
}