Below please find my code. When the command 'C' is sent from other device every 1 sec, it works. When the command 'C' is sent from another device every 100 ms. It failed to receive the command. The same code is OK in Arduino UNO to receive command 'C' every 100 ms.
#include <Wire.h>
#include <NewPing.h>
#define SONAR_NUM 3 // Number of Sonar
#define MAX_DISTANCE 400 // Maximum distance (in cm) to ping
NewPing sonar[SONAR_NUM] = { // Ultrasonic Sensor Object array
NewPing(13, 12, MAX_DISTANCE),
NewPing(11, 10, MAX_DISTANCE),
NewPing(9, 8, MAX_DISTANCE)
}
void loop() {
// put your main code here, to run repeatedly:
inbyte = ' ';
if (Serial.available() > 0){
inbyte = Serial.read();
}
if (inbyte == 'C'){
for (i = 0; i < SONAR_NUM; i++){
// delay(10);
sid = String(i + 1);
duration = sonar[i].ping();
distance = (duration/2)*0.0343;
distance = sonar[i].ping_cm();
dist = String(distance);
outpackage = "u"+sid+" "+dist+"\n";
Serial.print(outpackage);
Serial1.print(outpackage);*/
sid = String(i);
Serial.print(sid);
}
Serial.print("E\n");
} else if (inbyte == ' '){
// do nothing
} else {
Serial.write(inbyte);
// Serial1.write(inbyte);
}
}