Yun Jin Yonggledel임동교이하늘
Published © GPL3+

Innovation Lab #21 Ultrasonic_Motor

Bongilcheon High School_Innovation Lab Project.

BeginnerProtip15 minutes778
Innovation Lab #21 Ultrasonic_Motor

Things used in this project

Story

Read more

Schematics

Ultrasonic_Motor

Ultrasonic_Motor

Code

Ultrasonic_Motor

Arduino
Car goes forward or car goes backward.
const int trigPin = 11;
const int echoPin = 12;
long distance;
long duration;

#define ENA 3 
#define EN1 2 
#define EN2 4 
#define ENB 5  
#define EN3 7  
#define EN4 6 

int carSpeed = 200;

void setup() {
  pinMode(trigPin, OUTPUT); 
  pinMode(echoPin, INPUT); 
  pinMode(ENA, OUTPUT);
  pinMode(ENB, OUTPUT);
  pinMode(EN1, OUTPUT);
  pinMode(EN2, OUTPUT);
  pinMode(EN3, OUTPUT);
  pinMode(EN4, OUTPUT);
}

void loop(){
 ultra();
  if (distance > 10 && distance < 30) {
      moving_forward();
  }
    else if(distance < 10) {
      moving_backward();
    }
    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 stop_moving(){
  analogWrite(ENA, LOW);
  analogWrite(ENB, LOW);
}

void ultra(){
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance= duration*0.034/2;
}

Credits

Yun Jin Yong
6 projects • 10 followers
gledel
100 projects • 116 followers
Looking back on my childhood, I was happy when I was making something and I was proud of myself. "Making is instinct!"
임동교
0 projects • 12 followers
이하늘
5 projects • 3 followers

Comments