const int pingPin = 11; int inPin = 12; int duration, cm,val,val2; int cmx[10]; double mil; String strz; #include // #include SoftwareSerial mySerial1(2, 3); // RX, TX void setup() { Serial.begin(9600); mySerial1.begin(9600); pinMode(pingPin, OUTPUT); pinMode(inPin,INPUT_PULLUP); pinMode(13, OUTPUT); digitalWrite(13,LOW); } void send_data() { digitalWrite(13,HIGH);delay(100); mySerial1.print("LV"); mySerial1.print(cm<10 ?"00":cm<100?"0":"" ); mySerial1.println(cm); delay(10); digitalWrite(13,LOW); } void loop() { if (millis()-mil>1000) { mil=millis(); cm=0; for (int i=0;i<5 ;i++) { digitalWrite(pingPin, LOW); delayMicroseconds(2); digitalWrite(pingPin, HIGH); delayMicroseconds(5); digitalWrite(pingPin, LOW); pinMode(inPin, INPUT); duration = pulseIn(inPin, HIGH); cm =cm+ microsecondsToCentimeters(duration); delay(200); } cm=cm/5; // Serial.print("LV55"); // Serial.print(cm<10 ?"00":cm<100?"0":"" ); Serial.println(cm); // send_data(); } if (mySerial1.available()) mySerial1Event(); } long microsecondsToCentimeters(long microseconds) { // The speed of sound is 340 m/s or 29 microseconds per centimeter. // The ping travels out and back, so to find the distance of the // object we take half of the distance travelled. return microseconds / 29 / 2; } void mySerial1Event() { while (mySerial1.available()) { char inChar =(char)mySerial1.read(); strz += inChar; if (inChar == '\n' || inChar == '\r') { Serial.println(strz); if (strz[0]=='B' && strz[1]=='1' ) send_data(); strz=""; } } }