46 lines
1.1 KiB
C++
46 lines
1.1 KiB
C++
//Constants
|
|
#define NUM_JOY 2
|
|
#define MIN_VAL 0
|
|
#define MAX_VAL 1023
|
|
|
|
//Parameters
|
|
const int joyPin[2] = {A0, A1};
|
|
const int joyOffset = 7; // from the calibration phase
|
|
|
|
//Variables
|
|
int joyVal [NUM_JOY] = {0, 0};
|
|
|
|
void setup() {
|
|
//Init Serial USB
|
|
Serial.begin(9600);
|
|
Serial.println(F("Initialize System"));
|
|
//Init Joystick
|
|
for (int i = 0; i < NUM_JOY; i++)
|
|
{
|
|
pinMode(joyPin[i], INPUT);
|
|
}
|
|
}
|
|
|
|
void loop() {
|
|
readJoystick();
|
|
delay(500);
|
|
}
|
|
|
|
void readJoystick( ) { /* function readJoystick */
|
|
////Test routine for Joystick
|
|
for (int i = 0; i < NUM_JOY; i++) {
|
|
joyVal[i] = analogRead(joyPin[i]);
|
|
// Serial.print(F("joy")); Serial.print(i); Serial.print(F(" : ")); Serial.println(joyVal[i]);
|
|
}
|
|
Serial.println("--------- Joystick position ---------");
|
|
for (int i = 0; i < NUM_JOY; i++) {
|
|
Serial.print(F("Axis")), Serial.print(i); Serial.print(F(" : ")); Serial.println(joyRawToPhys(joyVal[i]));
|
|
}
|
|
}
|
|
|
|
float joyRawToPhys(int raw) { /* function joyRawToPhys */
|
|
////Joystick conversion rule
|
|
float phys = map(raw, MIN_VAL, MAX_VAL, -100, 100) + joyOffset;
|
|
return phys;
|
|
}
|