Ich verstehe die Frage leider nicht
Wenn ich wüsste was man damit so anstellt, dann hätte ich höchst unwahrscheinlich meine Frage gestellt.
Aber danke für die Antwort
...
uwefed
Also wie ich vermutet habe, Danke.
AHA, jetzt verstehe ich warum ich die Anschlüsse nicht finde...
Das gibt Gewissheit doch das richtige zu machen. DANKESCHÖN uwefed
Das erste Fragespiel ist gelöst und so traue ich mich also da weiter zu machen.
Das Sketch habe ich auf A6 etc. geändert und alles funktioniert einwandfrei.
#include "Joystick_mh_V2.h"
Joystick_ Joystick;
// put the max and min values from the analogRead in these arrays
// these are translated to a range of 0 - 1023
int axisLimits0[] = {338, 688};
int axisLimits1[] = {345, 692};
int axisLimits2[] = {352, 697};
int axisLimits3[] = {336, 688};
int axisLimits4[] = {325, 675};
int axisLimits5[] = {348, 703};
int axisLimits6[] = {342, 691};
// turn axes on or off by setting these variables
bool a0Used = true;
bool a1Used = true;
bool a2Used = true;
bool a3Used = true;
bool a6Used = true;
bool a7Used = true;
// setting mode prints the pin value and translated value to the serial monitor
// int setting = -1; // no printing to the serial monitor
// int setting = 2; // values 0 - 5, print the pin values to the serial monitor
int setting = -1;
void setup() {
if (a0Used) pinMode(A0, INPUT);
if (a1Used) pinMode(A1, INPUT);
if (a2Used) pinMode(A2, INPUT);
if (a3Used) pinMode(A3, INPUT);
if (a6Used) pinMode(A6, INPUT);
if (a7Used) pinMode(A7, INPUT);
Joystick.begin();
if (setting >= 0) Serial.begin(9600);
}
void loop() {
int value = 0;
int pos = 0;
if (a0Used) {
value = analogRead(A0);
pos = translateValue(value, axisLimits0[0], axisLimits0[1]);
Joystick.setThrottle(pos);
if (setting == 0) settingPrint(value, pos);
}
if (a1Used) {
value = analogRead(A1);
pos = translateValue(value, axisLimits1[0], axisLimits1[1]);
Joystick.setRxAxis(pos);
if (setting == 1) settingPrint(value, pos);
}
if (a2Used) {
value = analogRead(A2);
pos = translateValue(value, axisLimits2[0], axisLimits2[1]);
Joystick.setRyAxis(pos);
if (setting == 2) settingPrint(value, pos);
}
if (a3Used) {
value = analogRead(A3);
pos = translateValue(value, axisLimits3[0], axisLimits3[1]);
Joystick.setRzAxis(pos);
if (setting == 3) settingPrint(value, pos);
}
if (a6Used) {
value = analogRead(A6);
pos = translateValue(value, axisLimits4[0], axisLimits4[1]);
Joystick.setXAxis(pos);
if (setting == 4) settingPrint(value, pos);
}
if (a7Used) {
value = analogRead(A7);
pos = translateValue(value, axisLimits5[0], axisLimits5[1]);
Joystick.setYAxis(pos);
if (setting == 5) settingPrint(value, pos);
}
delay(5);
}
int translateValue(int v, int f1, int f2) {
// translates values to a 0 - 1023 range
int result = 0;
int start = 0;
float range = 0;
if (f1 < f2) {
start = f1;
range = f2 - f1;
}
else {
start = f2;
range = f1 - f2;
}
result = (v - start) * (1023 / range);
if (result < 0) result = 0;
if (result > 1023) result = 1023;
return result;
}
void settingPrint(int value, int pos) {
Serial.print(value);
Serial.print(" ");
Serial.println(pos);
}
Dann habe ich es um 2 erweitert und im Monitor der IDE Funktioniert auch alles .
Aber als ich die Gamecontroller Eigenschaften aufrufe sehe ich, dass der Joystick kann scheinbar nur 7 Achsen verarbeiten kann:
A6 - X-Achse (Gemisch1)
A7 - Y-Achse (Gemisch2)
A8 - Z-Achse (Propeller1)
A9 - (Propeller2)
A1 - X-Rotation (Schub2)
A2 - Y-Rotation (Klappen)
A3 - Z-Rotation (TrimWheel)
A0 - Schubkontrolle (Schub1)
Z-Achse Funktioniert nicht und Y Achse ist komisch
Schade, nun gut, dann habe ich einen aus dem Sketch wieder heraus genommen:
A6 - X-Achse (Gemisch1)
A7 - Y-Achse (Gemisch2)
A8 - Z-Achse (Propeller 1&2)
A1 - X-Rotation (Schub2)
A2 - Y-Rotation (Klappen)
A3 - Z-Rotation (TrimWheel)
A0 - Schubkontrolle (Schub1)
die Z-Achse A8 Funktioniert leider immer noch nicht.
Und der Poti an A8 scheint die Ausgabe von A7(Y Achse) mit zu beeinflussen.
Auch mit einer Lupe habe ich keine Lötbrücke gesehen und im IDE Monitor arbeiten sie ja auch sauber und unabhängig von einander.
hier der Sketch mit 7:
#include "Joystick_mh_V2.h"
Joystick_ Joystick;
// put the max and min values from the analogRead in these arrays
// these are translated to a range of 0 - 1023
int axisLimits0[] = {338, 688};
int axisLimits1[] = {345, 692};
int axisLimits2[] = {352, 697};
int axisLimits3[] = {336, 688};
int axisLimits4[] = {325, 675};
int axisLimits5[] = {348, 703};
int axisLimits6[] = {342, 691};
// turn axes on or off by setting these variables
bool a0Used = true;
bool a1Used = true;
bool a2Used = true;
bool a3Used = true;
bool a6Used = true;
bool a7Used = true;
bool a8Used = true;
// setting mode prints the pin value and translated value to the serial monitor
// int setting = -1; // no printing to the serial monitor
// int setting = 2; // values 0 - 6, print the pin values to the serial monitor
int setting = -1;
void setup() {
if (a0Used) pinMode(A0, INPUT);
if (a1Used) pinMode(A1, INPUT);
if (a2Used) pinMode(A2, INPUT);
if (a3Used) pinMode(A3, INPUT);
if (a6Used) pinMode(A6, INPUT);
if (a7Used) pinMode(A7, INPUT);
if (a8Used) pinMode(A8, INPUT);
Joystick.begin();
if (setting >= 6) Serial.begin(9600);
}
void loop() {
int value = 0;
int pos = 0;
if (a0Used) {
value = analogRead(A0);
pos = translateValue(value, axisLimits0[0], axisLimits0[1]);
Joystick.setThrottle(pos);
if (setting == 0) settingPrint(value, pos);
}
if (a1Used) {
value = analogRead(A1);
pos = translateValue(value, axisLimits1[0], axisLimits1[1]);
Joystick.setRxAxis(pos);
if (setting == 1) settingPrint(value, pos);
}
if (a2Used) {
value = analogRead(A2);
pos = translateValue(value, axisLimits2[0], axisLimits2[1]);
Joystick.setRyAxis(pos);
if (setting == 2) settingPrint(value, pos);
}
if (a3Used) {
value = analogRead(A3);
pos = translateValue(value, axisLimits3[0], axisLimits3[1]);
Joystick.setRzAxis(pos);
if (setting == 3) settingPrint(value, pos);
}
if (a6Used) {
value = analogRead(A6);
pos = translateValue(value, axisLimits4[0], axisLimits4[1]);
Joystick.setXAxis(pos);
if (setting == 4) settingPrint(value, pos);
}
if (a7Used) {
value = analogRead(A7);
pos = translateValue(value, axisLimits5[0], axisLimits5[1]);
Joystick.setYAxis(pos);
if (setting == 5) settingPrint(value, pos);
}
if (a8Used) {
value = analogRead(A8);
pos = translateValue(value, axisLimits5[0], axisLimits5[1]);
Joystick.setYAxis(pos);
if (setting == 6) settingPrint(value, pos);
}
delay(5);
}
int translateValue(int v, int f1, int f2) {
// translates values to a 0 - 1023 range
int result = 0;
int start = 0;
float range = 0;
if (f1 < f2) {
start = f1;
range = f2 - f1;
}
else {
start = f2;
range = f1 - f2;
}
result = (v - start) * (1023 / range);
if (result < 0) result = 0;
if (result > 1023) result = 1023;
return result;
}
void settingPrint(int value, int pos) {
Serial.print(value);
Serial.print(" ");
Serial.println(pos);
}
Was mache ich da falsch?
wie bekomme ich die Z Achse als 7ten Regler?
LG Rebecca