Created
October 20, 2019 15:04
-
-
Save justinbalaguer/bfe20b03eecd9a131a92766d78c764da to your computer and use it in GitHub Desktop.
AF & Servo motor controller
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Arduino Bluetooth Controlled Car// | |
// Before uploading the code you have to install the necessary library// | |
//AFMotor Library https://learn.adafruit.com/adafruit-motor-shield/library-install // | |
#include <AFMotor.h> | |
#include <Servo.h> | |
Servo name_servo; | |
//initial motors pin | |
AF_DCMotor motor1(1, MOTOR12_1KHZ); | |
AF_DCMotor motor2(2, MOTOR12_1KHZ); | |
AF_DCMotor motor3(3, MOTOR34_1KHZ); | |
AF_DCMotor motor4(4, MOTOR34_1KHZ); | |
char command; | |
void setup() | |
{ | |
Serial.begin(9600); //Set the baud rate to your Bluetooth module. | |
name_servo.attach (10); | |
} | |
void loop(){ | |
if(Serial.available() > 0){ | |
command = Serial.read(); | |
Stop(); //initialize with motors stoped | |
//Change pin mode only if new command is different from previous. | |
//Serial.println(command); | |
switch(command){ | |
case 'F': | |
forward(); | |
break; | |
case 'B': | |
back(); | |
break; | |
case 'L': | |
left(); | |
break; | |
case 'R': | |
right(); | |
break; | |
case '1' ... '2': | |
BWServo(); | |
break; | |
case '5' ... '6': | |
SWServo(); | |
break; | |
case '3' ... '4': | |
BUServo(); | |
break; | |
case '7' ... '8': | |
SUServo(); | |
break; | |
} | |
} | |
} | |
void BWServo() { | |
name_servo.write(180);delay(100); | |
} | |
void SWServo() { | |
name_servo.write(90);delay(100); | |
} | |
void BUServo() { | |
name_servo.write(0);delay(100); | |
} | |
void SUServo() { | |
name_servo.write(90);delay(100); | |
} | |
void forward() | |
{ | |
motor1.setSpeed(255); //Define maximum velocity | |
motor1.run(FORWARD); //rotate the motor clockwise | |
motor2.setSpeed(255); //Define maximum velocity | |
motor2.run(FORWARD); //rotate the motor clockwise | |
motor3.setSpeed(255);//Define maximum velocity | |
motor3.run(FORWARD); //rotate the motor clockwise | |
motor4.setSpeed(255);//Define maximum velocity | |
motor4.run(FORWARD); //rotate the motor clockwise | |
} | |
void back() | |
{ | |
motor1.setSpeed(255); //Define maximum velocity | |
motor1.run(BACKWARD); //rotate the motor anti-clockwise | |
motor2.setSpeed(255); //Define maximum velocity | |
motor2.run(BACKWARD); //rotate the motor anti-clockwise | |
motor3.setSpeed(255); //Define maximum velocity | |
motor3.run(BACKWARD); //rotate the motor anti-clockwise | |
motor4.setSpeed(255); //Define maximum velocity | |
motor4.run(BACKWARD); //rotate the motor anti-clockwise | |
} | |
void left() | |
{ | |
motor1.setSpeed(255); //Define maximum velocity | |
motor1.run(BACKWARD); //rotate the motor anti-clockwise | |
motor2.setSpeed(255); //Define maximum velocity | |
motor2.run(BACKWARD); //rotate the motor anti-clockwise | |
motor3.setSpeed(255); //Define maximum velocity | |
motor3.run(FORWARD); //rotate the motor clockwise | |
motor4.setSpeed(255); //Define maximum velocity | |
motor4.run(FORWARD); //rotate the motor clockwise | |
} | |
void right() | |
{ | |
motor1.setSpeed(255); //Define maximum velocity | |
motor1.run(FORWARD); //rotate the motor clockwise | |
motor2.setSpeed(255); //Define maximum velocity | |
motor2.run(FORWARD); //rotate the motor clockwise | |
motor3.setSpeed(255); //Define maximum velocity | |
motor3.run(BACKWARD); //rotate the motor anti-clockwise | |
motor4.setSpeed(255); //Define maximum velocity | |
motor4.run(BACKWARD); //rotate the motor anti-clockwise | |
} | |
void Stop() | |
{ | |
motor1.setSpeed(0); //Define minimum velocity | |
motor1.run(RELEASE); //stop the motor when release the button | |
motor2.setSpeed(0); //Define minimum velocity | |
motor2.run(RELEASE); //rotate the motor clockwise | |
motor3.setSpeed(0); //Define minimum velocity | |
motor3.run(RELEASE); //stop the motor when release the button | |
motor4.setSpeed(0); //Define minimum velocity | |
motor4.run(RELEASE); //stop the motor when release the button | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment