Залипают кнопки модификаторы (Keyboard.h)

Антон142
Offline
Зарегистрирован: 21.01.2016

Необходимо получать комбинацую клавишь напрмер Alt+F3. На мостоанно залипает кнопка модификатор Alt, Shift, Ctrl. причем никакой закономерности не выявлено, только лишь : чем болше задежка поосле нажатию комбинации тем больше вероятность залипания. Пытался по разному писать но результат тотже. 

1)

Keyboard.press(KEY_LEFT_ALT) , Keyboard.press(KEY_F3), delay(10), Keyboard.releaseAll(), delay(240);

2) 

Keyboard.press(KEY_LEFT_ALT) ;

Keyboard.press(KEY_F3), delay(10);

Keyboard.releaseAll(), delay(240);

3) 

Keyboard.press(KEY_LEFT_ALT) , Keyboard.write(KEY_F3), delay(10), Keyboard.releaseAll(); 

иногда не срабатывает Alt 

4)

Keyboard.press(KEY_LEFT_ALT) , delay(10), Keyboard.press(KEY_F3), delay(10), Keyboard.releaseAll(), delay(240);

5)

Keyboard.press(KEY_LEFT_ALT) , delay(10), Keyboard.press(KEY_F3), delay(10), Keyboard.release(KEY_LEFT_ALT), Keyboard.release(KEY_F3),delay(240);

Подскажите как надо писать ? 

UserDead
UserDead аватар
Offline
Зарегистрирован: 29.11.2015

Может проблема в delay? Замените на millis. Пример в "наборе новичка" blinkWithoutDelay.

Суть в запоминнаии текущего времени выполнения и сравнения с текущим. Попробуйте.

Изменено:

Но наверное это не то. Сделайте контрольную функцию в Keyboard.releaseAll(); она возращает количество отключенных кнопок. Например сделать так.

control_var = Keyboard.releaseAll();

Serial.println(control_var);

Так будет видно количество отжатых кнопок. Их в вашем случае должно быть два. У вас два?

А если их по отдельности отжать а не все. Так чисто попробовать.

Антон142
Offline
Зарегистрирован: 21.01.2016

Без Delay тоже тупит но меньше поэтому ветьв millis считаю тупиковой.

Скачал програму отображения нажатых кнопок Keyboard Test Utility там видно что кнопки нажимаются и отпускаются, но по факту alt остается нажатым.

по отдельности они вроде нормально нажимаются и отпускаются.

Антон142
Offline
Зарегистрирован: 21.01.2016

Не добился стабилность и просто пустил кнопки F* в расход.