Upload files to "libraries/ArduinoJoystickLibrary/examples/FunduinoJoystickShield"

This commit is contained in:
2026-01-14 14:18:07 -05:00
parent 9a1ac8a09f
commit 5a27b90464

View File

@@ -0,0 +1,85 @@
#include <Joystick.h>
const uint8_t buttonCount = 7;
Joystick_ controller(JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_GAMEPAD, buttonCount,
0, true, true, false,
false, false, false,
false, false, false,
false, false);
int const BTN_A_PIN = 2;
int const BTN_B_PIN = 3;
int const BTN_C_PIN = 4;
int const BTN_D_PIN = 5;
int const BTN_E_PIN = 6;
int const BTN_F_PIN = 7;
int const BTN_K_PIN = 8;
int const AXIS_X_PIN = A0;
int const AXIS_Y_PIN = A1;
int const buttonPins[buttonCount] = {
BTN_A_PIN,
BTN_B_PIN,
BTN_C_PIN,
BTN_D_PIN,
BTN_E_PIN,
BTN_F_PIN,
BTN_K_PIN
};
int lastButtonValue[buttonCount];
int lastXAxisValue = -1;
int lastYAxisValue = -1;
void setup()
{
controller.setYAxisRange(0, 1023);
controller.setYAxisRange(1023, 0);
controller.begin(false);
for (int i = 0; i < buttonCount; i++)
{
pinMode(buttonPins[i], INPUT_PULLUP);
lastButtonValue[i] = -1;
}
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
}
void loop()
{
bool sendUpdate = false;
for (int i = 0; i < buttonCount; i++)
{
const int buttonValue = digitalRead(buttonPins[i]);
if (buttonValue != lastButtonValue[i])
{
controller.setButton(i, !buttonValue);
lastButtonValue[i] = buttonValue;
sendUpdate = true;
}
}
const int currentXAxisValue = analogRead(AXIS_X_PIN);
if (currentXAxisValue != lastXAxisValue)
{
controller.setXAxis(currentXAxisValue);
lastXAxisValue = currentXAxisValue;
sendUpdate = true;
}
const int currentYAxisValue = analogRead(AXIS_Y_PIN);
if (currentYAxisValue != lastYAxisValue)
{
controller.setYAxis(currentYAxisValue);
lastYAxisValue = currentYAxisValue;
sendUpdate = true;
}
if (sendUpdate)
{
controller.sendState();
}
delay(50);
}