라즈베리파이와 함께 사용한 초음파 센서 HC-SR04입니다.
초음파 센서의 Vcc부분은 라즈베리파이의 5V부분에
GND부분은 GND에 결합했고
TRIG핀은 P24 ECHO핀은 P23에 결합했습니다.
TRIG핀인 P24는 wiringPi에서 5번핀
ECHO핀인 P23는 wiringPi에서 4번핀에 해당합니다.
아래는 테스트 소스코드입니다.
pinMode를 통해 trigPin을 OUTPUT에 echoPin을 INPUT으로 설정해줍니다.
trigPin을 통해 센서에게 요청하면 echoPin을 통해 값을 받을 수 있습니다.
digitalWrite를 통해 trigPin으로 요구사항을 보내고 digitalRead를 통해 받습니다.
이를 이용해 초음파의 travel time을 구해 거리를 측정합니다.
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을 구해 거리를 측정합니다.