Skip to content

Instantly share code, notes, and snippets.

@Brutt
Created April 1, 2017 12:10
Show Gist options
  • Save Brutt/c29dfdfa025d5759c80a66f984e510f9 to your computer and use it in GitHub Desktop.
Save Brutt/c29dfdfa025d5759c80a66f984e510f9 to your computer and use it in GitHub Desktop.
4wd robot arduino bluetooth control
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