/** * DC motor drive with joystick * * @author Florent Lemaire */ #define in1 8 #define in2 9 #define enA 6 #define analogInput A0 void setup() { pinMode(in1, OUTPUT); pinMode(in2, OUTPUT); pinMode(enA, OUTPUT); pinMode(analogInput, INPUT); } void loop() { int xAxis = analogRead(analogInput); // Read Joysticks X-axis int motorSpeedA = 0; // X-axis used for left and right control if (xAxis < 470) { // Set Motor A backward digitalWrite(in1, HIGH); digitalWrite(in2, LOW); // Convert the declining X-axis readings from 470 to 0 into increasing 0 to 255 value motorSpeedA = map(xAxis, 470, 0, 0, 255); }else if (xAxis > 550) { // Set Motor A forward digitalWrite(in1, LOW); digitalWrite(in2, HIGH); // Convert the increasing X-axis readings from 550 to 1023 into 0 to 255 value motorSpeedA = map(xAxis, 550, 1023, 0, 255); }else { digitalWrite(in1, LOW); digitalWrite(in2, LOW); } analogWrite(enA, motorSpeedA); // Send PWM signal to motor }