Arduino Tutorials – Lesson 11 – DC motor control by Ultrasonic Sensor Using Arduino UNO

Creating DC motor control by Ultrasonic Sensor program using Arduino UNO

Required Components

  1. Ultrasonic sensor board -1 no
  2. Arduino Uno board -1 no
  3. DC Motor -1 no
  4. 12V Battery -1 no
  5. Data Cable -1 no
  6. Connecting Wires -8 no
  7. DC motor driver(L298N) -1 no

Circuit

Steps

  1. Make sure the components are working properly.
  2. Ultrasonic Sensor board VCC, GND connected to 5V, GND of Arduino Uno Board.
  3. Connect Ultrasonic sensor Board echo, trigger pin to the Arduino Uno Board 2, 3 pin.
  4. Connect the ENA, IN1, IN2 pins to the Arduino Uno board pins 10, 8, 9 properly.
  5. Connect DC motor pins to DC motor driver output pins.
  6. Connect 12V battery to DC motor driver.
  7. Check the Arduino program.
  8. Check the Circuit Connections.
  9. Run the Arduino program.

Arduino Program

#define echopin 2
#define trigpin 3
long duration;
int distance;
int motorpin1 = 8;
int motorpin2 = 9;
int enpin1 = 10;

void setup()
{
  pinMode(trigpin, OUTPUT);
  pinMode(echopin, INPUT);
  Serial.begin(9600);
  Serial.println("Ultrasonic Sensor HC-SR04 Test");
  Serial.println("with Arduino UNO R3");
  pinMode(motorpin1, OUTPUT);
  pinMode(motorpin2, OUTPUT);
  pinMode(enpin1, OUTPUT);
  analogWrite(enpin1,70);
}

void loop() 
{
  digitalWrite(trigpin,LOW);
  delay(2000);
  digitalWrite(trigpin,HIGH);
  delay(5000);
  digitalWrite(trigpin,LOW);
  
  duration = pulseIn(echopin,HIGH);
  distance = duration * 0.034 / 2;
  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");
  
  if(distance > 20)
  {
    forward();
    delay(1000);
  }
  else if(distance <= 20)
  {
    stop();
    delay(1000);
  }
}

void stop ()
{
  digitalWrite(motorpin1,LOW);
  digitalWrite(motorpin2,LOW);
}

void forward()
{
  digitalWrite(motorpin1,HIGH);
  digitalWrite(motorpin2,LOW);
}

Usage

  1. Robot vehicles
  2. Defence vehicle

Projects

  1. Ball picking robot

Leave a Reply

Your email address will not be published. Required fields are marked *