Integración sensor ultrasonido SFR04, LCD 16x2 y bluetooth HC-06

Buenas tardes, quiero realizar la integración de los siguientes componentes: 1 sensor ultrasonido SFR04, 1 LCD 16x2 y 1 módulo bluetooth HC-06 en una tarjeta Arduino Mega R3, he realizado la prueba de cada mini proyecto por separado es decir el módulo BT responde correctamente a los comandos enviados desde la aplicación Android y así mismo el sensor de ultrasonido muestra los datos en la pantalla LCD 16x2; mi inconveniente radica en que al momento de juntar todo el sistema se queda colgado (el proyecto corresponde a un control de llenado y vaciado por medio de una app con visualización de la distancia de llenado solo en la pantalla LCD).

Gracias por su ayuda y pronta respuesta.

El programa se cuelga y el programa donde está?

Dos post para el mismo problemas? Unifica y borra uno de los dos

Disculpas por eso, ya rectifiqué…

#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11 , 12);

#define ECHOPIN 2 // Pin echo
#define TRIGPIN 3 // Pin trigger
#define LLENADO 13
#define VACIADO 13

void setup()
{ // BT conectado a TX0 y RX0 directamente en el Arduino mega
pinMode(LLENADO, OUTPUT); // salida llenado
pinMode(VACIADO, OUTPUT); // salida vaciado
pinMode(ECHOPIN, INPUT);
pinMode(TRIGPIN, OUTPUT);
Serial.begin(9600); // muestra en monitor serial las opciones de bomba y su correspondiente estado

lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print("Distancia ");
}

void loop()
{
digitalWrite(TRIGPIN, LOW); //Coloca el pin trigger en bajo por 2us
delayMicroseconds(2);
digitalWrite(TRIGPIN, HIGH); //Mantiene en alto por 10us el mismo pin
delayMicroseconds(10);
digitalWrite(TRIGPIN, LOW); //Lo coloca en bajo otra vez
int distance = pulseIn(ECHOPIN, HIGH); //Función para medir la longitud del pulso entrante. Mide el tiempo que transcurrido entre el envío del pulso ultrasónico y cuando el sensor recibe el rebote
distance= distance/58; //Calcula la distancia
Serial.println(distance);
Serial.println(" cm");
lcd.setCursor(10,0);
lcd.print(distance);
lcd.print(" cm");
delay(500);
//delay(50); //Espera por 50ms para volver a sensar

while (Serial.available()) //Mientras el puerto serie del modulo bluetooth esta disponible
{

char dato= Serial.read(); //Guardamos en la variable dato el valor leido por el modulo bluetooth

//Comprobamos el dato
switch(dato)
{
//Si recibimos una ‘A’ escribimos un 1 en pin 28 y enviamos para mostrar
//en Blueterm bomba llenado: on
case ‘A’:
{
digitalWrite(LLENADO,HIGH);
Serial.println(“bomba llenado: on”);
break;
}
//Si recibimos una ‘B’ escribimos un 0 en pin 28 y enviamos para mostrar
//en Blueterm bomba llenado: off
case ‘B’:
{
digitalWrite(LLENADO,LOW);
Serial.println(“bomba llenado: off”);
break;
}
//Si recibimos una ‘C’ escribimos un 1 en pin 29 y enviamos para mostrar
//en Blueterm bomba vaciado: on
case ‘C’:
{
digitalWrite(VACIADO,HIGH);
Serial.println(“bomba vaciado: on”);
break;
}
//Si recibimos una ‘D’ escribimos un 0 en pin 29 y enviamos para mostrar
//en Blueterm bomba vaciado: off
case ‘D’:
{
digitalWrite(VACIADO,LOW);
Serial.println(“bomba vaciado: off”);
break;
}
}
}
}

y donde estan [ code ] [ / code ]

edita por favor y ponlo entre estos elementos. Usa la barra de edicion con el icono

Vas a editar, luego seleccionas TODO el código y presionas ese icono que te indico. Asi se puede leer mejor el código.

TU CODIGO: De nuevo debo preguntar? porque no usas las librerías existentes? SFRH4 tiene ejemplos para mas facil implementación.