초음파 센서란? 사람의 귀에 들리지 않을 정도로 높은 주파수 (약 20 kHz 이상)의 음파인 초음파를 발생하여 음파를 쏘아올리고 반사되어 오는 음파까지의 시간차를 거리로 계산하여 측정하는 방식으로 동작한다.
초음파 거리 센서는 발신부와 수신부로 구성된다. 발신부는 함수 발생기에서 (+)와 전압을 번갈아 압전소자에 가해주면 압전소자의 변형에 의해 진동이 발생하고 진동에 의해 초음파가 발생하는 역압전현상을 이용한다. 수신부는 발신부에서 발생한 초음파가 물체에 반사되어 돌아오는 파동에 의해 압전소자가 진동하고 진동에 의해 전압이 발생되는 정압전형상을 이용하여 반사되어 돌아오는 시간을 기초로 거리를 측정한다.

초음파는 파장이 짧아 지향성과 직진성이 높으며 공기 중에서는 340m/s의 일정한 속도로 진행하는 특징을 가지므로 거리 측정을 위한 수단으로 많이 사용된다. 자동차의 후방 경보 시스템이 초음파를 이용한 대표적인 예에 해당한다.
초음파 센서
- 센서 파트 넘버: 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
'개발자 > 라즈베리파이4' 카테고리의 다른 글
| 라즈베리파이4 데이터베이스 연동 php 에러 보이게 (0) | 2022.05.22 |
|---|---|
| 라즈베리파이4 스마트 농장 액츄에이터 제어 (0) | 2022.05.20 |
| 라즈베리파이 4 인체감지 센서 실습 코드 (0) | 2022.05.19 |
| MQ-135 Air quality hazardous gas sensor module (0) | 2022.05.18 |
| Raspberry Pi Pico 마이크로 컨트롤러 보드 (0) | 2022.05.17 |
| 라즈베리파이4 mpeg-streamer 폴더 에러 해결 (5) | 2022.05.06 |
| 컴파일 명령어 -lmysqlclient 를 -lmariadbclient 로 바꿔준다. (0) | 2022.04.27 |
| libmysqlclient-dev 패키지를 사용할 수 없습니다. mariadb (0) | 2022.04.27 |
취업, 창업의 막막함, 외주 관리, 제품 부재!
당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약,
아이디어는 있지만 구현할 기술이 없는 막막함.
우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.
이제 고민을 멈추고, 캐어랩을 만나세요!
코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.
제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!
귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.
캐어랩