Я пытался передать данные от координатора XBee к XBee в маршрутизаторе AT режиме. Оно работает.Передача данных от координатора XBee (API) к маршрутизатору XBee (AT)
Однако существует слишком большая задержка при недопустимой длительности. Как решить проблему задержки?
int led = 0;
int ledX = 13;
int pin = 5;
int bs;
String store[20];
void setup() {
pinMode(led,OUTPUT);
pinMode(pin,INPUT);
Serial.begin(9600);
}
void loop() {
// bs = digitalRead(5);
//if(bs == LOW){
digitalWrite(led,HIGH);
setRemoteState(0x05);
delay(1000);
//}
//else if(bs == HIGH){
digitalWrite(led,LOW);
setRemoteState(0x04);
delay(1000);
//}
}
void setRemoteState(char value){
Serial.write(0x7E); //start of the frame
Serial.write((byte)0); // byte length
Serial.write(0x10); //high part 16 in decimal
Serial.write(0x17); // AT command request
Serial.write((byte)0); // frame ID dont need any ack
Serial.write((byte)0);
Serial.write((byte)0);
Serial.write((byte)0);
Serial.write((byte)0);
Serial.write((byte)0);
Serial.write((byte)0);
Serial.write(0xFF);
Serial.write(0xFF);
Serial.write(0xFF);
Serial.write(0xFE);
Serial.write(0x02);
Serial.write('D');
Serial.write('3'); //change pin D3
Serial.write(value);
long sum = 0x17 + 0xFF + 0xFF + 0xFF + 0xFE + 0x02 + 'D' + '3' + value;
Serial.write(0xFF - (sum &0xFF));
}
Выше мой код, который я реализовал в моем Arduino
Задержка до 10 секунд, что необоснованно. Я изменил скорость передачи до 115200, но все еще не улучшился, я также загрузил свой код, вы можете сказать, посмотрев на него? – Muhammad
Вы отправляете широковещательные сообщения (адрес 0x000000000000FFFF), и вам будет лучше использовать MAC-адрес маршрутизатора. Кроме того, вы отправляете каждую секунду, даже если вход не изменился. Следите за состоянием ввода-вывода и передавайте только при его изменении. Это определенно поможет. – tomlogic