Не работает библиотека Keyboard

Moxed
Offline
Зарегистрирован: 21.02.2019

Здравствуйте.

Имеется Arduino Pro Micro (ATmega32U4). Создаю скетч:

#include <Keyboard.h>

void setup() {
  Keyboard.begin();
  delay(1000);

  Keyboard.print("Test");
  
  delay(1000);
  Keyboard.end();  
}

void loop() {
  //
}

По итогу клавиатура не эмулируется и собственно не происходит совсем ничего. Всячески переписывал данный код, но ничего так и не заработало. Хотя, библиотека Mouse работает корректно.

Тестировал в IDE 1.8.8 и 1.6.13.

В чём может быть проблема и как её решить?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

а когда выполняется Keyboard.print("Test");  кнопочки "T", "E", "S" на клавиатуре опускаются и поднимаются? 

Если нет - библиотека бракованная

kalapanga
Offline
Зарегистрирован: 23.10.2016

А проверяете как? Открыли какой-нибудь редактор, установили в нём курсор, воткнули ардуину в усб, напечатался текст - так?

Moxed
Offline
Зарегистрирован: 21.02.2019

Да, так. Но текст, соответственно, не напечатался. Я что-то не правильно делаю?

Не судите строго, я лишь начинаю разбираться в этом.

Moxed
Offline
Зарегистрирован: 21.02.2019

Ребят, ни у кого нет мыслей по данному поводу?

sadman41
Offline
Зарегистрирован: 19.10.2016

Вот это работает на Micro Pro

#include <Keyboard.h>

void setup() {
  Keyboard.begin();
}

void loop() {
  Keyboard.print("Test");
  delay(2302);
}

 

Duet
Offline
Зарегистрирован: 17.01.2015

Не понимаю как использовать библиотеку. Задача сделать панель управления под Mach3, отдельную клавиатуру для выполнения команд в программе. Библиотека дублирует клавиши классической клавиатуры? Пробовал назначать клавиши на нее, не получилось.

Duet
Offline
Зарегистрирован: 17.01.2015
#include <Keyboard.h>

#include <Button.h>
#include <Click.h>  
Button BUTTON_02;     
Button BUTTON_03;             
void setup () 
{ 
  Keyboard.begin();
BUTTON_02.button(8);
BUTTON_03.button(9);
}
void loop() {
 BUTTON_02.read();
 BUTTON_03.read();

if (BUTTON_02.event_click_Dn()) { Keyboard.write(37);} 
if (BUTTON_03.event_click_Dn()) { Keyboard.write(16);} 
  
}

Почему то коды не соответствуют. вместо 37-курсор в лево выдает %.

sadman41
Offline
Зарегистрирован: 19.10.2016

поищи в столбце Decimal цифирь 37 и посмотри, какой глиф ему соответствует:

Duet
Offline
Зарегистрирован: 17.01.2015

Хм, нагуглил коды клавишь, а они вообще другие, не ASCII: http://netcode.ru/cpp/?artID=234

А какие команды используются на стрелочках на клавиатуре, как они называются?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Нет там команд, есть только скан-коды.

sadman41
Offline
Зарегистрирован: 19.10.2016
Duet
Offline
Зарегистрирован: 17.01.2015

Работает) Что хорошо, работают сочетания клавиш. В китайском наборе плата+джойстики сочетания не работают.

#include <Keyboard.h>

#include <Button.h>
#include <Click.h>  
Button BUTTON_02;     
Button BUTTON_03;             
void setup () 
{ 
  Keyboard.begin();
BUTTON_02.button(8);
BUTTON_03.button(9);
}
void loop() {
 BUTTON_02.read();
 BUTTON_03.read();

if (BUTTON_02.event_click_Dn()) { Keyboard.press(0xD7);}
if (BUTTON_02.event_click_Up()) { Keyboard.release(0xD7);}

if (BUTTON_03.event_click_Dn()) { Keyboard.press(0x85);}
if (BUTTON_03.event_click_Up()) { Keyboard.release(0x85);} 
  
}