Skip to content

Instantly share code, notes, and snippets.

@alexellis
Created September 17, 2015 08:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexellis/b19ecd7bc857cfcba3c5 to your computer and use it in GitHub Desktop.
Save alexellis/b19ecd7bc857cfcba3c5 to your computer and use it in GitHub Desktop.
Chinese 60A motor controller tester
#define enablePin 2
#define IN1_L 3
#define IN3_R 6
#define IN2_L 5
#define IN4_R 9
int engineSpeed;
const int BRAKE=0;
const int FORWARDS=1;
const int BACKWARDS=2;
const int RIGHT=3;
const int LEFT=4;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(enablePin,OUTPUT);
pinMode(IN1_L,OUTPUT);
pinMode(IN2_L,OUTPUT);
pinMode(IN3_R,OUTPUT);
pinMode(IN4_R,OUTPUT);
digitalWrite(enablePin, HIGH);
engineSpeed=140;
}
void go(int dir){
if(dir==BRAKE){
digitalWrite(IN1_L,LOW);
digitalWrite(IN2_L,LOW);
digitalWrite(IN3_R,LOW);
digitalWrite(IN4_R,LOW);
}else if(dir==FORWARDS){
digitalWrite(IN2_L, LOW);
digitalWrite(IN4_R, LOW);
analogWrite(IN1_L, engineSpeed);
analogWrite(IN3_R, engineSpeed);
} else if(dir == BACKWARDS){
digitalWrite(IN1_L, LOW);
digitalWrite(IN3_R, LOW);
analogWrite(IN2_L, engineSpeed);
analogWrite(IN4_R, engineSpeed);
}else if(dir==LEFT){
analogWrite(IN1_L, LOW);
analogWrite(IN2_L, engineSpeed);
analogWrite(IN3_R, engineSpeed);
analogWrite(IN4_R, LOW);
} else if(dir == RIGHT){
analogWrite(IN1_L, engineSpeed);
analogWrite(IN2_L, LOW);
analogWrite(IN3_R, LOW);
analogWrite(IN4_R, engineSpeed);
}
}
void loop() {
if(Serial.available()){
byte b = Serial.read();
if(b==49){
Serial.println("Fast");
if(engineSpeed+20<=250){
engineSpeed+=20;
}
}
else if(b==50){
Serial.println("Slow");
if(engineSpeed-20>0){
engineSpeed-=20;
}
}else if(b==97){
Serial.println("Left");
go(LEFT);
}else if(b==100){
Serial.println("Right");
go(RIGHT);
}else if(b==119){
Serial.println("Forward");
go(FORWARDS);
}else if(b==115){
Serial.println("Backward");
go(BACKWARDS);
}
else if(b==112){
Serial.println("Stop");
go(BRAKE);
}
else {
Serial.println(b);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment