Hallo, ich möchte mir gerne eine Buttonbox erstellen, welche danach am PC als Gamepad erkannt wird. Dazu habe benutze ich einen Ardunio Micro. Zu meinem Kippschalter mit LED gibt es hier folgenden Schaltbild.
Ich möchte nun dass, wenn der Kippschalter auf ON gestellt wird, dies am Eingang des Gamepad registriert wird und dass die LED leuchtet. Leider bekomme ich es nicht hin, dass beides auf einmal geht. Im ersten Bild sieht man dass zwar die LED aufleuchtet, jedoch kein Eingang registriert wird.
Beim zweiten Bild durch Anschließen vom +-Pin vom Kippschalter an den GND vom Board wird wenn der Kippschalter betätigt wird, dies am Gamepad registriert, LED bleibt jedoch aus.=> Dies ist ja ein Kurzschluss oder?
Hier noch mein Code:
// Simple gamepad example that demonstraits how to read five Arduino
// digital pins and map them to the Arduino Joystick library.
//
// The digital pins 2 - 6 are grounded when they are pressed.
// Pin 2 = UP
// Pin 3 = RIGHT
// Pin 4 = DOWN
// Pin 5 = LEFT
// Pin 6 = FIRE
//
// NOTE: This sketch file is for use with Arduino Leonardo and
// Arduino Micro only.
//
// by Matthew Heironimus
// 2016-11-24
//--------------------------------------------------------------------
#include <Joystick.h>
Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID,JOYSTICK_TYPE_GAMEPAD,
1, 0, // Button Count, Hat Switch Count
true, true, false, // X and Y, but no Z Axis
false, false, false, // No Rx, Ry, or Rz
false, false, // No rudder or throttle
false, false, false); // No accelerator, brake, or steering
void setup() {
// Initialize Button Pins
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
pinMode(4, INPUT_PULLUP);
pinMode(5, INPUT_PULLUP);
pinMode(6, INPUT_PULLUP);
// Initialize Joystick Library
Joystick.begin();
Joystick.setXAxisRange(-1, 1);
Joystick.setYAxisRange(-1, 1);
}
// Last state of the buttons
int lastButtonState[5] = {0,0,0,0,0};
void loop() {
// Read pin values
for (int index = 0; index < 5; index++)
{
int currentButtonState = !digitalRead(index + 2);
if (currentButtonState != lastButtonState[index])
{
switch (index) {
case 0: // UP
if (currentButtonState == 1) {
Joystick.setYAxis(-1);
} else {
Joystick.setYAxis(0);
}
break;
case 1: // RIGHT
if (currentButtonState == 1) {
Joystick.setXAxis(1);
} else {
Joystick.setXAxis(0);
}
break;
case 2: // DOWN
if (currentButtonState == 1) {
Joystick.setYAxis(1);
} else {
Joystick.setYAxis(0);
}
break;
case 3: // LEFT
if (currentButtonState == 1) {
Joystick.setXAxis(-1);
} else {
Joystick.setXAxis(0);
}
break;
case 4: // FIRE
Joystick.setButton(0, currentButtonState);
break;
}
lastButtonState[index] = currentButtonState;
}
}
delay(10);
}
Was muss ich machen dass beides aufeinmal funktioniert?
LG
zickes