arduino-motor-control
arduino-motor-control
// Constants
const int MOTOR_SPEED = 200; // Motor speed (0-255)
const int TURNING_SPEED = 150; // Speed while turning
const int MIN_DISTANCE = 20; // Minimum distance in cm before changing
direction
const int STOP_DISTANCE = 10; // Distance at which to stop completely
void setup() {
// Configure motor control pins
pinMode(ENA, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
void moveBackward() {
analogWrite(ENA, MOTOR_SPEED);
analogWrite(ENB, MOTOR_SPEED);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void turnRight() {
analogWrite(ENA, TURNING_SPEED);
analogWrite(ENB, TURNING_SPEED);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void turnLeft() {
analogWrite(ENA, TURNING_SPEED);
analogWrite(ENB, TURNING_SPEED);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void stopMotors() {
analogWrite(ENA, 0);
analogWrite(ENB, 0);
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
void loop() {
int distance = getDistance();
Serial.print("Distance: ");
Serial.println(distance);