I am trying to use two US100 ultrasonic sensors for collision detection in Serial mode but I am only getting reading for "distance2"

#include <SoftwareSerial.h>

SoftwareSerial mySerial1(3, 2);
SoftwareSerial mySerial2(5, 4);

unsigned int HighByte1 = 0;
unsigned int LowByte1 = 0;
unsigned int Len1 = 0;

unsigned int HighByte2 = 0;
unsigned int LowByte2 = 0;
unsigned int Len2 = 0;

void setup() {
Serial.begin(9600);
mySerial1.begin(9600);
mySerial2.begin(9600);

}

void loop() {
mySerial1.flush();
mySerial1.write(0X55); // trig US-100 begin to measure the distance
delay(500);
if (mySerial1.available() >= 2) // check receive 2 bytes correctly
{
HighByte1 = mySerial1.read();
LowByte1 = mySerial1.read();
Len1 = HighByte1 * 256 + LowByte1; // Calculate the distance
if ((Len1 > 1) && (Len1 < 10000))
{
Serial.print("Distance1: ");
Serial.print(Len1, DEC);
Serial.println("mm");
}
}

mySerial2.flush();
mySerial2.write(0X55); // trig US-100 to begin measuring the distance
delay(500);
if (mySerial2.available() >= 2)
{
HighByte2 = mySerial2.read();
LowByte2 = mySerial2.read();
Len2 = HighByte2 * 256 + LowByte2; // Calculate the distance
if ((Len2 > 1) && (Len2 < 10000))
{
Serial.print("Distance2: ");
Serial.print(Len2, DEC);
Serial.println("mm");
}
}
}

see here: https://docs.arduino.cc/tutorials/communication/TwoPortReceive/

1 Like

Thank you so much.. the problem is solved..

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.