доброго дня. сделал эмулятор клавиатуры на nano. суть в том что бы по нажиманию кнопки, ардуинка эмулировала ряд нажатий клавиш клавиатуры (как макрос). в целом успех получен, устройство работает но скетч написан с помощью delay. это в принципе мой первый опыт с ардуино и программированием. проблема в том что иногда программа не срабатывает вообще или не срабатывает полностью. мне кажется это связано с delay. своего ума как заменить на millis мне не хватает, все примеры в сети на светодиодах, работают постоянно и циклично. а мне нужно чтобы только по нажатию. я не прошу сделать за меня, я прошу у сообщества подсказку, как заменить delay на millis.
#include <EasyHID.h>
#include <GyverButton.h>
GButton btn0 (7,HIGH_PULL, NORM_OPEN);
void setup() {
HID.begin();
btn0.setDebounce(60); // антидребезг
btn0.setTimeout(600); //таймаут зажатия
}
void loop() {
btn0.tick();
if (btn0.isSingle()){ // одиночное нажатие кнопки
Keyboard.click(KEY_F12);
delay(60);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.click(KEY_TAB);
Keyboard.releaseAll();
delay(60);
Keyboard.click(KEY_F12);
delay(60);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.click(KEY_TAB);
Keyboard.releaseAll();
}
if (btn0.isHolded()){ //удерживание кнопки
Keyboard.click(KEY_F11);
delay(60);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.click(KEY_TAB);
Keyboard.releaseAll();
delay(60);
Keyboard.click(KEY_F11);
delay(60);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.click(KEY_TAB);
Keyboard.releaseAll();
}
if (btn0.isDouble()){ //двойное нажатие кнопки
Keyboard.click(KEY_F10);
delay(60);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.click(KEY_TAB);
Keyboard.releaseAll();
delay(60);
Keyboard.click(KEY_F10);
delay(60);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.click(KEY_TAB);
Keyboard.releaseAll();
}
HID.tick();
}
за основу взял библиотеки алекса гайвера HID устройства и использования кнопки. через монитор порта подобрал оптимальные значения антидребезга и задержки между кликами для определения зажатия. в идеале нужно было сделать что бы после альтаба delay был больше, чтобы комп успевал отработать, но тогда скетч практически не срабатывал