#include #define ESC1_PIN 6 // Left motor #define ESC2_PIN 7 // Right motor #define JOY_X_PIN A1 #define JOY_Y_PIN A2 Servo esc1; Servo esc2; void setup() { Serial.begin(115200); pinMode(A1,INPUT); pinMode(A2,INPUT); pinMode(ESC1_PIN,OUTPUT); pinMode(ESC2_PIN,OUTPUT); esc1.attach(ESC1_PIN); esc2.attach(ESC2_PIN); esc1.writeMicroseconds(1000); esc2.writeMicroseconds(1000); delay(2000); // Let ESCs initialize } void loop() { int xValue = analogRead(JOY_X_PIN); int yValue = analogRead(JOY_Y_PIN); delay(1000); Serial.println("start"); Serial.print("X: "); Serial.println(xValue); Serial.print(" | Y: "); Serial.println(yValue); int pwmLeft = 1000; int pwmRight =1000; // Forward motion (both motors) if (yValue >3800) { int pwm = map(yValue, 3800,4095, 1000, 2000); pwmLeft = pwm; //analogWrite(ESC1_PIN,pwm); // analogWrite(ESC2_PIN,pwm); pwmRight = pwm; Serial.println("Moving Forward"); // Backward motion (optional) /*else if (yValue < 400) { int pwm = map(yValue, 0, 400, 0, 1000); pwmLeft = pwm; pwmRight = pwm; Serial.println("Moving Backward"); } */ // Turning left or right by adjusting individual motor speeds }else if (xValue < 3000) { int turnPWM = map(xValue, 3000, 0,1000, 2000); pwmRight = turnPWM; // Slow down right motor Serial.println("Turning Left"); } else if (xValue > 3800) { int turnPWM = map(xValue, 3800, 4095, 1000, 2000); pwmLeft = turnPWM; // Slow down left motor Serial.println("Turning Right"); } else { esc1.writeMicroseconds(1000); esc2.writeMicroseconds(1000); Serial.println("Moving "); //delay(2000); } esc1.writeMicroseconds(pwmLeft); esc2.writeMicroseconds(pwmRight); delay(1000); }