Raspberry pi ultrasonic sensor(라즈베리파이 초음파 센서)

라즈베리파이와 함께 사용한 초음파 센서 HC-SR04입니다.




초음파 센서의 Vcc부분은 라즈베리파이의 5V부분에

GND부분은 GND에 결합했고

TRIG핀은 P24 ECHO핀은 P23에 결합했습니다.

TRIG핀인 P24는 wiringPi에서 5번핀

ECHO핀인 P23는 wiringPi에서 4번핀에 해당합니다.











아래는 테스트 소스코드입니다.

#include<stdio.h>
#include<wiringPi.h>

#define trigPin 5
#define echoPin 4

int main(void)
{
 int distance = 0;
 int count = 0;

 wiringPiSetup();

 pinMode(trigPin, OUTPUT);
 pintMode(echoPin, INPUT);

 for(;;)
 {
  digitalWrite(trigPin, LOW);
  usleep(2);
  digitalWrite(trigPin, HIGH);
  usleep(20);
  digitalWrite(trigPin, LOW);

  while(digitalRead(echoPin) == LOW);

  long startTime = micros();
  while(digitalRead(echoPin) == HIGH);
  long travelTime = micros() - startTime;

  int distance = travelTime / 58;

  printf("Distance: %dcm\n", distance);
  count++;
  delay(1000);

  printf("count: %d\n\n",count);
 }
}

pinMode를 통해 trigPin을 OUTPUT에 echoPin을 INPUT으로 설정해줍니다.

trigPin을 통해 센서에게 요청하면 echoPin을 통해 값을 받을 수 있습니다.

digitalWrite를 통해 trigPin으로 요구사항을 보내고 digitalRead를 통해 받습니다.

이를 이용해 초음파의 travel time을 구해 거리를 측정합니다.