Created
April 1, 2017 12:10
-
-
Save Brutt/c29dfdfa025d5759c80a66f984e510f9 to your computer and use it in GitHub Desktop.
4wd robot arduino bluetooth control
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
int enableA = 1; | |
int pinA1 = 3; | |
int pinA2 = 2; | |
int enableB = 6; | |
int pinB1 = 5; | |
int pinB2 = 4; | |
char state = '0'; | |
void setup() { | |
//configure pin modes for the drive motors | |
pinMode (enableA, OUTPUT); | |
pinMode (pinA1, OUTPUT); | |
pinMode (pinA2, OUTPUT); | |
pinMode (enableB, OUTPUT); | |
pinMode (pinB1, OUTPUT); | |
pinMode (pinB2, OUTPUT); | |
Serial.begin(9600); // Default connection rate for my BT module | |
} | |
void loop() { | |
state = Serial.read(); | |
if (state == 'f') { | |
forward(10); | |
} | |
else if (state == 'b') { | |
backward(10); | |
} | |
else if (state == 'l') { | |
left(10); | |
} | |
else if (state == 'r') { | |
right(10); | |
} | |
else if (state == 's') { | |
breakRobot(10); | |
} | |
else if (state == '1') { | |
enableMotors(); | |
} | |
else if (state == '0') { | |
disableMotors(); | |
} | |
} | |
//motor functions | |
void motorAforward() { | |
digitalWrite (pinA1, HIGH); | |
digitalWrite (pinA2, LOW); | |
} | |
void motorBforward() { | |
digitalWrite (pinB1, LOW); | |
digitalWrite (pinB2, HIGH); | |
} | |
void motorAbackward() { | |
digitalWrite (pinA1, LOW); | |
digitalWrite (pinA2, HIGH); | |
} | |
void motorBbackward() { | |
digitalWrite (pinB1, HIGH); | |
digitalWrite (pinB2, LOW); | |
} | |
void motorAstop() { | |
digitalWrite (pinA1, HIGH); | |
digitalWrite (pinA2, HIGH); | |
} | |
void motorBstop() { | |
digitalWrite (pinB1, HIGH); | |
digitalWrite (pinB2, HIGH); | |
} | |
void motorAon() { | |
digitalWrite (enableA, HIGH); | |
} | |
void motorBon() { | |
digitalWrite (enableB, HIGH); | |
} | |
void motorAoff() { | |
digitalWrite (enableA, LOW); | |
} | |
void motorBoff() { | |
digitalWrite (enableB, LOW); | |
} | |
// Movement functions | |
void forward(int duration) { | |
motorAforward(); | |
motorBforward(); | |
delay (duration); | |
} | |
void backward(int duration) { | |
motorAbackward(); | |
motorBbackward(); | |
delay (duration); | |
} | |
void right(int duration) { | |
motorAbackward(); | |
motorBforward(); | |
delay (duration); | |
} | |
void left(int duration) { | |
motorAforward(); | |
motorBbackward(); | |
delay (duration); | |
} | |
void breakRobot(int duration) { | |
motorAstop(); | |
motorBstop(); | |
delay (duration); | |
} | |
void disableMotors() { | |
motorAoff(); | |
motorBoff(); | |
} | |
void enableMotors() { | |
motorAon(); | |
motorBon(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment