Alright, it is working! But.... I have an annoying buzzing sound when not moving. Does anyone has a solution for this?
#include <AFMotor.h>
//initial motors pin
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);
int motorSpeed1 = 0;
int motorSpeed2 = 0;
int motorSpeed3 = 0;
int motorSpeed4 = 0;
char command;
void setup()
{
Serial.begin(9600);
Serial.println("Joystick Test Code");
}
void loop() {
int xAxis = analogRead(A0); // Read Joysticks X-axis
int yAxis = analogRead(A1); // Read Joysticks Y-axis
// Y-axis used for forward and backward control
if (yAxis < 470) {
int motor1Speed = map(yAxis, 470, 0, 0, 255);
int motor2Speed = map(yAxis, 470, 0, 0, 255);
int motor3Speed = map(yAxis, 470, 0, 0, 255);
int motor4Speed = map(yAxis, 470, 0, 0, 255);
// Set Motor A backward
motor1.setSpeed(motor1Speed); //Define maximum velocity
motor1.run(BACKWARD); //rotate the motor anti-clockwise
motor2.setSpeed(motor2Speed); //Define maximum velocity
motor2.run(BACKWARD); //rotate the motor anti-clockwise
motor3.setSpeed(motor3Speed); //Define maximum velocity
motor3.run(BACKWARD); //rotate the motor anti-clockwise
motor4.setSpeed(motor4Speed); //Define maximum velocity
motor4.run(BACKWARD); //rotate the motor anti-clockwise
}
else if (yAxis > 550) {
int motor1Speed = map(yAxis, 550, 1023, 0, 255);
int motor2Speed = map(yAxis, 550, 1023, 0, 255);
int motor3Speed = map(yAxis, 550, 1023, 0, 255);
int motor4Speed = map(yAxis, 550, 1023, 0, 255);
// Set Motor A forward
motor1.setSpeed(motor1Speed); //Define maximum velocity
motor1.run(FORWARD); //rotate the motor anti-clockwise
motor2.setSpeed(motor2Speed); //Define maximum velocity
motor2.run(FORWARD); //rotate the motor anti-clockwise
motor3.setSpeed(motor3Speed); //Define maximum velocity
motor3.run(FORWARD); //rotate the motor anti-clockwise
motor4.setSpeed(motor4Speed); //Define maximum velocity
motor4.run(FORWARD); //rotate the motor anti-clockwise
}
if (xAxis < 470) {
int motor1Speed = map(xAxis, 470, 0, 0, 255);
int motor2Speed = map(xAxis, 470, 0, 0, 255);
int motor3Speed = map(xAxis, 470, 0, 0, 255);
int motor4Speed = map(xAxis, 470, 0, 0, 255);
// Go Right
motor1.setSpeed(motor1Speed); //Define maximum velocity
motor1.run(FORWARD); //rotate the motor anti-clockwise
motor2.setSpeed(0); //Define maximum velocity
motor2.run(FORWARD); //rotate the motor anti-clockwise
motor3.setSpeed(0); //Define maximum velocity
motor3.run(FORWARD); //rotate the motor anti-clockwise
motor4.setSpeed(motor4Speed); //Define maximum velocity
motor4.run(FORWARD); //rotate the motor anti-clockwise
}
else if (xAxis > 550) {
int motor1Speed = map(xAxis, 550, 1023, 0, 255);
int motor2Speed = map(xAxis, 550, 1023, 0, 255);
int motor3Speed = map(xAxis, 550, 1023, 0, 255);
int motor4Speed = map(xAxis, 550, 1023, 0, 255);
// Go left
motor1.setSpeed(0); //Define maximum velocity
motor1.run(FORWARD); //rotate the motor anti-clockwise
motor2.setSpeed(motor2Speed); //Define maximum velocity
motor2.run(FORWARD); //rotate the motor anti-clockwise
motor3.setSpeed(motor3Speed); //Define maximum velocity
motor3.run(FORWARD); //rotate the motor anti-clockwise
motor4.setSpeed(0); //Define maximum velocity
motor4.run(FORWARD); //rotate the motor anti-clockwise
}
}