#define ENA 3
#define EN1 2
#define EN2 4
#define ENB 5
#define EN3 7
#define EN4 6
int carSpeed = 200;
int carSpeed_smooth = 50;
void setup() {
Serial.begin(9600);
pinMode(ENA, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(EN1, OUTPUT);
pinMode(EN2, OUTPUT);
pinMode(EN3, OUTPUT);
pinMode(EN4, OUTPUT);
}
void loop() {
if (Serial.available()) {
char command = Serial.read();
if (command == 'F' || command == 'f') {
moving_forward();
}
else if (command == 'B' || command == 'b') {
moving_backward();
}
else if (command == 'L' || command == 'l') {
moving_left();
}
else if (command == 'R' || command == 'r') {
moving_right();
}
else if (command == 'S' || command == 's') {
stop_moving();
}
else if (command == 'O' || command == 'o') {
moving_smooth_right();
}
else if (command == 'P' || command == 'p') {
moving_smooth_left();
}
else {
stop_moving();
}
}
delay(100);
}
void moving_forward() {
digitalWrite(EN1, HIGH);
digitalWrite(EN2, LOW);
analogWrite(ENA, carSpeed);
digitalWrite(EN3, HIGH);
digitalWrite(EN4, LOW);
analogWrite(ENB, carSpeed);
}
void moving_backward() {
digitalWrite(EN1, LOW);
digitalWrite(EN2, HIGH);
analogWrite(ENA, carSpeed);
digitalWrite(EN3, LOW);
digitalWrite(EN4, HIGH);
analogWrite(ENB, carSpeed);
}
void moving_left() {
digitalWrite(EN1, LOW);
digitalWrite(EN2, HIGH);
analogWrite(ENA, carSpeed);
digitalWrite(EN3, HIGH);
digitalWrite(EN4, LOW);
analogWrite(ENB, carSpeed);
}
void moving_right() {
digitalWrite(EN1, HIGH);
digitalWrite(EN2, LOW);
analogWrite(ENA, carSpeed);
digitalWrite(EN3, LOW);
digitalWrite(EN4, HIGH);
analogWrite(ENB, carSpeed);
}
void stop_moving() {
analogWrite(ENA, LOW);
analogWrite(ENB, LOW);
}
void moving_smooth_left() {
digitalWrite(EN1, HIGH);
digitalWrite(EN2, LOW);
analogWrite(ENA, carSpeed_smooth);
digitalWrite(EN3, HIGH);
digitalWrite(EN4, LOW);
analogWrite(ENB, carSpeed);
}
void moving_smooth_right() {
digitalWrite(EN1, HIGH);
digitalWrite(EN2, LOW);
analogWrite(ENA, carSpeed);
digitalWrite(EN3, HIGH);
digitalWrite(EN4, LOW);
analogWrite(ENB, carSpeed_smooth);
}
Comments