проблема с кнопками
- Войдите на сайт для отправки комментариев
Сб, 14/07/2018 - 10:10
Не могу понять кнопка джойстика работает (pin 3), а остальные кнопки нет .
Кнопки перемешения на джойстике тоже работают.
#include "Keyboard.h" #include <Keyboard.h> #include <HID.h> #define pinX A0 // ось X джойстика #define pinY A1 // ось Y джойстика void setup() { pinMode (3, INPUT_PULLUP); pinMode (7, INPUT_PULLUP); pinMode (8, INPUT_PULLUP); pinMode (9, INPUT_PULLUP); pinMode (10, INPUT_PULLUP); pinMode (11, INPUT_PULLUP); pinMode (12, INPUT_PULLUP); pinMode (13, INPUT_PULLUP); pinMode (11, INPUT_PULLUP); pinMode(pinX, INPUT); pinMode(pinY, INPUT); } void loop() { int X = analogRead(pinX);// считываем значение оси Х int Y = analogRead(pinY);// считываем значение оси Y boolean button1 = !digitalRead(3); boolean button2 = !digitalRead(7); boolean button3 = !digitalRead(8); boolean button4 = !digitalRead(9); boolean button5 = !digitalRead(10); boolean button6 = !digitalRead(11); boolean button7 = !digitalRead(12); boolean button8 = !digitalRead(13); if (X>550) Keyboard.press(KEY_UP_ARROW); else Keyboard.release(KEY_UP_ARROW); if (X<500) Keyboard.press(KEY_DOWN_ARROW); else Keyboard.release(KEY_DOWN_ARROW); if (Y>550) Keyboard.press(KEY_RIGHT_ARROW); else Keyboard.release(KEY_RIGHT_ARROW); if (Y<500) Keyboard.press(KEY_LEFT_ARROW); else Keyboard.release(KEY_LEFT_ARROW); if (button1 == 1) Keyboard.press(KEY_BACKSPACE); else Keyboard.release(KEY_BACKSPACE); if (button1 == 2) Keyboard.press("e"); else Keyboard.release("e"); if (button1 == 3) Keyboard.press("r"); else Keyboard.release("r"); if (button1 == 4) Keyboard.press("t"); else Keyboard.release("t"); if (button1 == 5) Keyboard.press("y"); else Keyboard.release("y"); if (button1 == 6) Keyboard.press("u"); else Keyboard.release("u"); if (button1 == 7) Keyboard.press("i"); else Keyboard.release("i"); if (button1 == 8) Keyboard.press("o"); else Keyboard.release("o"); }
Откуда у вас digitalRead(), который умеет выдавать значения от 1 до 8? Срочно высылайте - мне он тоже нужен.
Переделал код так но так и не работает
Давайте подумаем... Что у нас посылает кейкод? Функция Keyboard.press(). А чем же питается эта функция... https://www.arduino.cc/en/Reference/KeyboardPress говорит нам о том, что символами (char). Является ли "o" символом?
И, кстати, "It is necessary to call Keyboard.begin() before using press()"
А как использовать обычные буквы с обработкой длительных нажатий. То есть зажатий.
Отсылать символ только при переходе HIGH->LOW, а не каждый раз, когда обнаружено состояние LOW.
На примере показывать не просите - я данный скетч писал абсолютно по-другому.
Вот ещё раз переделанный код, но опять не работает. Мне кажется, что я напутал с подключением кнопок. Я их подключил одной ногой к земле другой к пину.
Вот ещё раз переделанный код, но опять не работает. Мне кажется, что я напутал с подключением кнопок. Я их подключил одной ногой к земле другой к пину.
Изучаем простейших. Со страницы нумер раз.