Отработка джойстика как 4 кнопки
- Войдите на сайт для отправки комментариев
Пт, 09/04/2021 - 16:52
Здравствуйте, появилась надобность в проекте - обработать 4 кнопки (типо вперед назад влево вправо). Вместо 4 кнопок я решил использовать 1 джойстик. А теперь вопрос - как его отработать при помощи библиотеки GyverButton.Знаю, что можно просто через analogRead. а в проекте нужно отслеживать когда джойстик нажат 1 раз, 2раза, просто зажат и так далее.
А теперь вопрос - как его отработать при помощи библиотеки GyverButton.
Gyver знает
Можно. Через аналог (2 входа) считываешь положения X и Y. Через обычный вход - кнопку нажатия. Ну, ~~ строк 20 кода.
джостики они разные бывают... например я себе купил i2c,
зы
для начала хоть какие-то данные про железо сообщите :)
Спасибо вам за то, что так быстро ответили.Вообще разобрался, может кому и пригодится
#include "AnalogKey.h" #include "GyverButton.h" AnalogKey<A0,2>X; GButton btn1,btn2; void setup(){ X.attach(0,0); X.attach(1,1023); Serial.begin(9600); } void loop(){ btn1.tick(X.status(0)); btn2.tick(X.status(1)); if (btn1.isClick()) Serial.println("click 0"); if (btn2.isClick()) Serial.println("click 1"); if (btn1.isHolded()) Serial.println("hold 0"); if (btn2.isHolded()) Serial.println("hold 1"); }Это отработка одной оси.
Просто дешевый ардуино джойстик(два потенциометра).
Вот скетч полноценной отработки двух осей джойстика
#include "AnalogKey.h" #include "GyverButton.h" AnalogKey<A0, 2>X; AnalogKey<A1, 2>Y; GButton F, B; GButton L, R; void setup() { X.attach(0, 0); X.attach(1, 1023); Y.attach(0, 0); Y.attach(1, 1023); Serial.begin(9600); } void loop() { F.tick(X.status(0)); B.tick(X.status(1)); R.tick(Y.status(0)); L.tick(Y.status(1)); if (F.isClick()) Serial.println("click F"); if (B.isClick()) Serial.println("click B"); if (F.isHolded()) Serial.println("hold F"); if (B.isHolded()) Serial.println("hold B"); if (L.isClick()) Serial.println("click L"); if (R.isClick()) Serial.println("click R"); if (L.isHolded()) Serial.println("hold L"); if (R.isHolded()) Serial.println("hold R"); }А вообще, лучше вот тут спросите - https://community.alexgyver.ru/
И нафига в этой задаче использовать гайверовские библиотеки ?
и без них всё решается.