Сопряжение двух HC05 - почему так медленно?
- Войдите на сайт для отправки комментариев
Ср, 12/06/2019 - 18:17
Вобщем пытаюсь наладить связь между двумя ARDUINO UNO R3 с помощью двух Bluetooth модулей HC-05. Модули "прошил" и теперь они видят друг-друга. Сопряжение проверяю следующим образом: каждая из плат принимает от собеседника число, вычитает из него единицу и отправляет собеседнику. Проблема в том - что между итерациями проходит около секунды, а задержку я ставлю около 50 микросекунд. В чем моя ошибка?
Код Arduino с модулем Bluetooth HC-05(SLAVE):
void setup() { Serial.begin(9600); } void loop() { if (Serial.available()) { String bytes = ""; int answer =0; bytes = Serial.readString(); answer = bytes.toInt()-1; delayMicroseconds(50); Serial.print(String(answer)); } }
Код Arduino с модулем Bluetooth HC-05(MASTER):
#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); const byte BTpin = 7; boolean BTconnected = false; void setup() { pinMode(BTpin, INPUT); Serial.begin(9600); lcd.begin(); lcd.backlight(); lcd.clear(); lcd.print("Start"); while (!BTconnected) { if ( digitalRead(BTpin)==HIGH) { BTconnected = true;}; } lcd.clear(); lcd.print("Head Connected"); Serial.print(500); } void loop() { if (Serial.available()) { String bytes = ""; int answer =0; bytes = Serial.readString(); answer = bytes.toInt()-1; delayMicroseconds(50); Serial.print(String(answer)); lcd.clear(); lcd.setCursor(0, 0); lcd.print(String(answer)); lcd.setCursor(0, 1); lcd.print(bytes); } }
P.S. Оба модуля прошиты на 9600 бит/c
У вас сейчас при чтении строки оно ждет таймаут, он как раз по умолчанию 1 сек вроде.
Попробуйте Serial.readStringUntil('\n') и Serial.println или другой способ передачи.
Спасибо, сейчас попробую.
Все заработало, спасибо большое!