Непонятная работа esp32 и кода

Помогите кто может. Второй день бьюсь с ESP32. При использовании оператора if-else в месте с командами bleKeyboard.press и bleKeyboard.release выполняется цикличная перезагрузка ESP.

Программа работает, но перезагружается примерно каждые 15 секунд.

Если убрать bleKeyboard.releaseAll(); из раздела else перезапуск прекращается.

ПОМОГИТЕ!!!

например:

#include <BleKeyboard.h>
BleKeyboard bleKeyboard;



#define BT1 34 // ПИН к которому подключена кнопка А
#define BT2 35 // ПИН к которому подключена кнопка В


void setup () {
   // запуск последовательного порта
   Serial.begin (115200);
   pinMode(BT1, INPUT_PULLUP);     // ПИН кнопки как вход
   pinMode(BT2, INPUT_PULLUP);     // ПИН кнопки как вход
   pinMode(LED_BUILTIN, OUTPUT);   // встроеный светодиод
   bleKeyboard.begin();
}
void loop () {

 digitalWrite (LED_BUILTIN, bleKeyboard.isConnected());

  if (!digitalRead(BT1))               // если нажата кнока A
    {            
    bleKeyboard.press('C');           // нажимаем клавишу C
    }
    else 
    {
    bleKeyboard.releaseAll();         // отпускаем все клавиши
    }

  if (!digitalRead(BT2))             // если нажата кнока B
    {                                  
    bleKeyboard.press('V');           // нажимаем клавишу V
    }
    else 
    {    
    bleKeyboard.releaseAll();         // отпускаем все клавиши
    }
  }

дребезг сеньор исключает?

1 лайк

Во первых - нахрена постоянно слать bleKeyboard.releaseAll()? Один раз послал - и довольно. Во вторых - поставь задержку delay(100); между посылами - голубые зубы не щёлкают со скоростью ESP.

1 лайк