Skip to content

Instantly share code, notes, and snippets.

@maditnerd
Created April 27, 2022 21:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save maditnerd/704af6733c82467ae4d5f17cc78542ca to your computer and use it in GitHub Desktop.
Save maditnerd/704af6733c82467ae4d5f17cc78542ca to your computer and use it in GitHub Desktop.
const int dimensionY = 26;
const int dimensionX = 25;
int midX;
int midY;
int x = 0;
int y = 0;
int xVal, yVal, mainMotor, rightMotor, leftMotor;
float diffDeg;
float diffValue;
float diffMotor;
void setup() {
Serial.begin(115200);
pinMode(dimensionY, INPUT);
pinMode(dimensionX, INPUT);
analogReadResolution(10);
}
void loop() { //middle value for joystick midX = analogRead(dimensionX); midY = analogRead(dimensionY);
x = analogRead(dimensionX);
y = analogRead(dimensionY);
joyStick();
}
int joyStick() {
xVal = map(x, midX, 1023, 0, 400); yVal = map(y, midY, 0, 0, 400);
diffDeg = atan2(yVal, xVal) * 180 / 3.1415;
if (diffDeg < 0) {
diffDeg += 360;
}
if (diffDeg < 90) {
diffValue = map(diffDeg, 0, 90, 0, 100);
if (diffDeg < 45) {
mainMotor = xVal;
} else {
mainMotor = yVal;
}
} else if (diffDeg < 190) {
diffValue = map(diffDeg, 90, 180, 100, 0);
if (diffDeg < 135) {
mainMotor = abs(yVal);
} else {
mainMotor = abs(xVal);
}
} else if (diffDeg < 270)
{
diffValue = map(diffDeg, 180, 270, 0, 100);
if (diffDeg < 225) {
mainMotor = xVal;
} else {
mainMotor = yVal;
}
} else {
diffValue = map(diffDeg, 270, 360, 100, 0);
if (diffDeg < 315) {
mainMotor = yVal;
} else {
mainMotor = -xVal;
}
}
mainMotor = constrain(mainMotor, -400, 400);
if (abs(mainMotor) < 15) {
mainMotor = 0;
}
diffMotor = mainMotor * diffValue / 100;
if (diffDeg > 90 && diffDeg < 270) {
rightMotor = diffMotor; leftMotor = mainMotor;
} else {
rightMotor = mainMotor; leftMotor = diffMotor;
}
// Serial.print(rightMotor);
// Serial.print(",");
// Serial.println(leftMotor);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment