Сопряжение двух 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 или другой способ передачи.
Спасибо, сейчас попробую.
Все заработало, спасибо большое!