ARDUINO Геймпад с двумя джойстиками, 6 кнопками (+ 2 на джойстиках) и тачпадом от ноутбука на ATmega 32u4

neon060794

✩✩✩✩✩✩✩
17 Окт 2019
3
0
Здравствуйте, есть набросок кода (два, найденных в интернете - для тачпада и двух джойстиков - я их совместил), можете глянуть, кого не затруднит, все ли я делаю правильно и верен ли скетч?

IMG_20191017_142951.jpg
 

Вложения

Последнее редактирование:

Старик Похабыч

★★★★★✩✩
14 Авг 2019
1,662
409
Москва
не похоже, что правильно. плата какая ? у нано 2 земли, если цвет проводов соотв. описанию, то тут 3 земли, уже не то. Надписи разъемов плохо видно, поэтому могу ошибаться. но пока так
 

neon060794

✩✩✩✩✩✩✩
17 Окт 2019
3
0
На контакты не смотри, это дело плевое, сам код, что вместе своял
 

neon060794

✩✩✩✩✩✩✩
17 Окт 2019
3
0
Схему свою нарисовал, с правильными контактами и тачпадом. Все видно должно быть.
 

gandupac

✩✩✩✩✩✩✩
2 Янв 2020
1
0
#include <Joystick.h> //
Joystick_ Joystick; // создает джойстик (creates the Joystick)
int RxAxis_ = 0; // введение переменных (introducing variables)
int RyAxis_ = 0;
int XAxis_ = 0;
int YAxis_ = 0;
const bool initAutoSendStatte = true;
void setup()
{
pinMode(9, INPUT_PULLUP); //настраиваем все наши кнопки (sets up all our buttons)
pinMode(4, INPUT_PULLUP);
pinMode(10, INPUT_PULLUP);
pinMode(14, INPUT_PULLUP);
pinMode(15, INPUT_PULLUP);
pinMode(2, INPUT_PULLUP);
Joystick.begin();// старт джойстика (starts Joystick)
}
void loop(){

RxAxis_ = analogRead(A2); //наша переменная равна входу от аналогового вывода 2 (our variable is equal to the input from analog pin 2)
RxAxis_ = map(RxAxis_,0,1023,255,0); //карта, которая меняется (map that varible)
Joystick.setRxAxis(RxAxis_); //связывает правый джойстики xaxis с нашей входной переменной (links the Joysticks right xaxis to our input varible)
RyAxis_ = analogRead(A3);
RyAxis_ = map(RyAxis_,1023,0,255,0);
Joystick.setRyAxis(RyAxis_);
XAxis_ = analogRead(A1);
XAxis_ = map(XAxis_,1023,0,255,0);
Joystick.setXAxis(XAxis_);
YAxis_ = analogRead(A0);
YAxis_ = map(YAxis_,1023,0,255,0);
Joystick.setYAxis(YAxis_);

if (digitalRead(9)== LOW) //если кнопка, подключенная к контакту 9, нажата (if the button connected to pin 9 is pressed)
{Joystick.pressButton(0);} //нажата кнопка 0 (button 0 is pressed)
else
{Joystick.releaseButton(0);} //если кнопка, подключенная к контакту 9, не нажата отпустите кнопку 0 (if the button connected to pin 9 is not pressed release button 0 )
if (digitalRead(4)== LOW)
{Joystick.pressButton(1);}
else
{Joystick.releaseButton(1);}
if (digitalRead(10)== LOW)
{Joystick.pressButton(2);}
else
{Joystick.releaseButton(2);}
if (digitalRead(14)== LOW)
{Joystick.pressButton(3);}
else
{Joystick.releaseButton(3);}
if (digitalRead(15)== LOW)
{Joystick.pressButton(4);}
else
{Joystick.releaseButton(4);}
if (digitalRead(2)== LOW)
{Joystick.pressButton(5);}
else
{Joystick.releaseButton(5);}
delay(10);
}