From MechaWiki
Jump to: navigation, search

HC-SR04 초음파 거리센서

준비물 : Uno R3, USB cable, 브레드보드, HC-SR04 초음파 거리센서, 점퍼선


배경 : 거리를 측정하는 것으로는 보통 적외선이나 초음파를 많이 사용합니다 .

각각 센서들은 장점과 단 점들이 있습니다. 그러나 이 HC-SR04는 매우 싸며 유명한 거리센서입니다.

적외선과 초음파센서는 각각 빛과 소리를 보냅니다. 신호는 물체에 닿으면 반사되며 신호를 보내고

다시 받는 사이의 시간을 측정합니다 . 적외선 센서는 검은 물체에 작동하지 않으며 초음파센서는

초음파센서는 흡수성의 물체 (예로 스펀지 )에 잘 작동 하지 않습니다.


회로 :


회로 초음파.png


코드 :

const int TriggerPin = 8; //Trig pin
const int EchoPin = 9; //Echo pin
long Duration = 0;

void setup() {
  pinMode(TriggerPin, OUTPUT); // Trigger is an output pin
  pinMode(EchoPin, INPUT); // Echo is an input pin
  Serial.begin(9600); // Serial Output
}

void loop() {
  digitalWrite(TriggerPin, LOW);
  delayMicroseconds(2);
  digitalWrite(TriggerPin, HIGH); // Trigger pin to HIGH
  delayMicroseconds(10); // 10us high
  digitalWrite(TriggerPin, LOW); // Trigger pin to HIGH

  Duration = pulseIn(EchoPin, HIGH); // Waits for the echo pin to get high
  // returns the Duration in microseconds

  long Distance_mm = Distance(Duration); // Use function to calculate the distance

  Serial.print("Distance = "); // Output to serial
  Serial.print(Distance_mm);
  Serial.println(" mm");
  delay(1000); // Wait to do next measurement
}

long Distance(long time)
{
  // Calculates the Distance in mm
  // ((time)*(Speed of sound))/ toward and backward of object) * 10

  long DistanceCalc; // Calculation variable
  DistanceCalc = ((time / 2.9) / 2); // Actual calculation in mm
  //DistanceCalc = time / 74 / 2; // Actual calculation in inches
  return DistanceCalc; // return calculated value
}


초음파 결과.png

Fig. 15. 결과