// Control character
String mm = ""; // move
// Control pins
int f_sp = 32; // front speed
int f_st = 33; // front steering
int b_sp = 25; // back speed
int b_st = 26; // back steering
// back pin for relay >>> encoder
int rel_back = 24; //
void setup() {
// put your setup code here, to run once:
pinMode(f_sp, OUTPUT);
pinMode(f_st, OUTPUT);
pinMode(b_sp, OUTPUT);
pinMode(b_st, OUTPUT);
pinMode(rel_back, OUTPUT);
// serial
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
if (Serial.available()){
mm = Serial.readStringUntil('\n');
move(mm);
}
// forward("f5");
}
void move(String m) {
// steering in middle
int f_middle = 128;
int b_middle = 128;
// speed
int first_speed = 140;
int sec_speed = 168;
int third_speed = 196;
int fourth_speed = 224;
int fifth_speed = 255;
int stop_value =130 ;
if (m == "f1") { // lowest speed
Serial.println("first");
// steering // only one time >>> and it never change
analogWrite(f_st, f_middle);
analogWrite(b_st, f_middle);
// speed
analogWrite(f_sp, first_speed);
analogWrite(b_sp, first_speed);
digitalWrite(rel_back, LOW);// TO REMOVE BACK
} else if (m == "f2"){
Serial.println("second");
// speed
analogWrite(f_sp, sec_speed);
analogWrite(b_sp, sec_speed);
} else if (m == "f3"){
Serial.println("third");
// speed
analogWrite(f_sp, third_speed);
analogWrite(b_sp, third_speed);
} else if (m == "f4"){
Serial.println("fourth");
// speed
analogWrite(f_sp, fourth_speed);
analogWrite(b_sp, fourth_speed);
} else if (m == "f5"){
Serial.println("fifth");
// speed
analogWrite(f_sp, fifth_speed);
analogWrite(b_sp, fifth_speed);
}
// stop
else if (m=="st"){
// steering // only one time >>> and it never change
analogWrite(f_st, f_middle);
analogWrite(b_st, f_middle);
// speed
analogWrite(f_sp, first_speed - 10 );
analogWrite(b_sp, first_speed - 10 );
}
// turnnig right
else if (m=="tr"){
// steering // max to reach to be right
analogWrite(f_st, 255);
analogWrite(b_st, 255);
// speed
analogWrite(f_sp, first_speed);
analogWrite(b_sp, first_speed);
digitalWrite(rel_back, LOW);// TO REMOVE BACK
}
// turnnig left
else if (m=="tl"){
// steering // max to reach to be right
analogWrite(f_st, 255);
analogWrite(b_st, 255);
// speed
analogWrite(f_sp, first_speed);
analogWrite(b_sp, first_speed);
digitalWrite(rel_back, LOW);// TO REMOVE BACK
}
}