Sketch взаимодействует с Android через BLE на Serial2, но время ожидания истекает через 5 секунд, когда последовательный кабель отключен или отсутствует.

На телефоне Android я использую приложение «Serial Bluetooth Terminal» для связи с Arduino Mega 2560 с модулем Bluetooth Low Energy HM10 (Jaycar XC-4382), подключенным через Serial2.

Если физический последовательный кабель USB (последовательный) подключен к Arduino, очень простой скетч ниже работает нормально и работает непрерывно. Если кабель отсоединен во время скетча или выключается и включается питание без подключенного кабеля, скетч будет работать около 5 секунд, а затем остановится.

Как предотвратить таймаут скетча при отключении последовательного кабеля?

int counter = 0;

void setup() 
{
    Serial2.begin(9600);  
}

void loop()
{
    Serial2.print(counter); Serial2.println();
    delay(1000);
    counter++;
}

, 👍0

Обсуждение

как включить его при отключении от USB?, @Juraj

Блок питания 12 В постоянного тока, подключенный к электросети., @Brett


1 ответ


-1

Обходной путь — переключиться на использование SoftwareSerial, см. код ниже. Данные непрерывно передаются через Bluetooth с Arduino Mega на Android с подключенным USB-кабелем или без него.

#include <SoftwareSerial.h>

// Соединения
// Ардуино HM10
// МЕГА
// ---- ----
// 3,3 В постоянного тока
// Земля Земля
// 12 приемов
// 13 ТХ

SoftwareSerial bte(12,13);    // RX, TX используйте (2,3) для UNO
int counter = 0;

void setup() { 
  // устанавливаем скорость передачи данных для порта SoftwareSerial
  bte.begin(9600);
  bte.println(counter);
}

void loop() { // выполняем снова и снова
  bte.println(counter);
  counter++;
  delay(1000);
}
,

у него Мега с 4 аппаратными серийниками, @Juraj