Оценка задержки для Xbee
Я объясню свою задачу в упрощенном виде. Я общаюсь между 3 Xbee.
Прилагаемый код предназначен для отправителя Xbee. Этот Xbee фактически отправляет несколько значений value1 (здесь для упрощения я присвоил ему постоянное значение 10). Для нахождения значения1 он также выполняет некоторые другие вычисления, а затем присваивает его.
Но я нахожу, что если я уменьшу или удалю задержку(100) В итоге я получаю неправильные значения. Я предполагаю, что задержка дает буферное время для передачи данных, но мой вопрос в том, как рассчитать минимальную задержку или как можно обосновать, что это необходимая задержка ?
Надеюсь, вы понимаете мой вопрос. Если нет, пожалуйста, прокомментируйте, я расскажу еще несколько важных деталей.
// Отправитель Xbee
void setup()
{
Serial.begin(9600);
}
void loop()
{
int value1 = 10; // некоторые жестко закодированные значения для отправки
Serial.print('H'); // уникальный заголовок для идентификации начала сообщения
Serial.print(value1,DEC);
Serial.print(","); // обратите внимание, что после последнего поля ставится запятая
Serial.print('\n'); // отправить cr/lf
delay(100);
}
1 ответ
Основываясь на моем опыте работы с Xbee, я бы сказал, что предел составляет 50 мс, так как Xbee может выполнять самую низкую частоту дискретизации 50 мс.
- Одновременное использование Arduino и XBee
- Как подключиться к Arduino с помощью WiFi?
- Основная связь Arduino ModBus RTU с проблемой измерителя мощности
- Отправка значения с одного Arduino на другой
- Связь Arduino master/slave с использованием RS485
- Клиент MQTT на Arduino + SIM900
- Ошибка инициализации GPS DFRobot [Arduino Uno, SIM808]
- Реализовать связь Visible Light с помощью Arduino
Если время имеет решающее значение (и при условии, что вы не хотите потерять какое-либо сообщение), вам, вероятно, потребуется некоторое уведомление о том, что сообщение было получено правильно (возможно, со значением контрольной суммы)., @Michel Keijzers