From 5a27b9046423da33795d416846f6e4bf2e92573d Mon Sep 17 00:00:00 2001 From: DAProgs Date: Wed, 14 Jan 2026 14:18:07 -0500 Subject: [PATCH] Upload files to "libraries/ArduinoJoystickLibrary/examples/FunduinoJoystickShield" --- .../FunduinoJoystickShield.ino | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 libraries/ArduinoJoystickLibrary/examples/FunduinoJoystickShield/FunduinoJoystickShield.ino diff --git a/libraries/ArduinoJoystickLibrary/examples/FunduinoJoystickShield/FunduinoJoystickShield.ino b/libraries/ArduinoJoystickLibrary/examples/FunduinoJoystickShield/FunduinoJoystickShield.ino new file mode 100644 index 0000000..71c277a --- /dev/null +++ b/libraries/ArduinoJoystickLibrary/examples/FunduinoJoystickShield/FunduinoJoystickShield.ino @@ -0,0 +1,85 @@ +#include + +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); +}