개발자/라즈베리파이4

라즈베리파이 4 초음파 센서 실습 코드

지구빵집 2022. 5. 17. 08:21
반응형

 

 

초음파 센서란? 사람의 귀에 들리지 않을 정도로 높은 주파수 (약 20 kHz 이상)의 음파인 초음파를 발생하여 음파를 쏘아올리고 반사되어 오는 음파까지의 시간차를 거리로 계산하여 측정하는 방식으로 동작한다.

 

초음파 거리 센서는 발신부와 수신부로 구성된다. 발신부는 함수 발생기에서 (+)와 전압을 번갈아 압전소자에 가해주면 압전소자의 변형에 의해 진동이 발생하고 진동에 의해 초음파가 발생하는 역압전현상을 이용한다. 수신부는 발신부에서 발생한 초음파가 물체에 반사되어 돌아오는 파동에 의해 압전소자가 진동하고 진동에 의해 전압이 발생되는 정압전형상을 이용하여 반사되어 돌아오는 시간을 기초로 거리를 측정한다.

 

 

초음파 거리 센서 원리

 

초음파는 파장이 짧아 지향성과 직진성이 높으며 공기 중에서는 340m/s의 일정한 속도로 진행하는 특징을 가지므로 거리 측정을 위한 수단으로 많이 사용된다. 자동차의 후방 경보 시스템이 초음파를 이용한 대표적인 예에 해당한다. 

 

 

초음파 센서

 

- 센서 파트 넘버: HC-SR04 

 

센서 이미지

 

초음파 센서 HC-SR04

 

아래 간략한 초음파 센서를 설명한 자료를 참고합니다.

 

초음파 센서 기구 사이즈와 음파 범위

 

초음파 센서 원리와 실행

 

연결도 

 

초음파 센서 HC-SR04 연결도

 

 

- 파일 이름: ultrasonic.c

- 소스코드: 할당된 gpio 번호는 예고없이 변경할 수 있습니다.

 

컴파일 명령

$gcc -o ultrasonic lutrasonic.c -l wiringPi

 

$실행 명령

$sudo ./ultrasonic

 

다른 초음파 센서 참고 포스팅

 

Ultrasonic Sensors: Comparison and Test (US42V2, JSN-SR04T, and US-100)

여러가지 초음파 센서를 테스트하고 결과를 동영상으로 보여준다. 동영상 링크 https://www.youtube.com/watch?v=vGlKVRvnjws Andreas Spiess 채널 참고 https://www.youtube.com/channel/UCu7_D0o48KbfhpEohoP7..

fishpoint.tistory.com

 

* 주의 사항

 

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

#define trigPin 1	//gpio 21
#define echoPin 29	//gpio 18

//old #define trigPin 21	//gpio 5
//old #define echoPin 4	//gpio  J16-pin3 GPIO 23

int main(void)
{
	int distance=0;
	int pulse = 0;
	
	long startTime;
	long travelTime;
	
	if(wiringPiSetup () == -1)
	{
		printf("Unable GPIO Setup"); 
		return 1;
	}
		
	pinMode (trigPin, OUTPUT);
	pinMode (echoPin, INPUT);
	
	for(;;)
	{
		digitalWrite (trigPin, LOW);
		usleep(2);
		digitalWrite (trigPin, HIGH);
		usleep(20);
		digitalWrite (trigPin, LOW);
		
		while(digitalRead(echoPin) == LOW);
		
		startTime = micros();
		
		while(digitalRead(echoPin) == HIGH);
		travelTime = micros() - startTime;
		
		int distance = travelTime / 58;
		
		printf( "Distance: %dcm\n", distance);
		delay(200);
	}
}

 

결과

 

Distance: 8cm
Distance: 8cm
Distance: 8cm
Distance: 8cm
Distance: 8cm
Distance: 8cm
Distance: 8cm
Distance: 8cm
Distance: 8cm
Distance: 8cm
Distance: 8cm
Distance: 8cm
Distance: 8cm

 

 

 

반응형