HC-SR04
초음파 센서는 초음파를 쏜 뒤 돌아오는 시간을 계산해 거리를 측정할 수 있는 센서입니다. 초음파 센서의 기본적인 정보와 사용법 그리고 프로그램 코딩을 말씀드리겠습니다.
HC-SR04 초음파 센서
아두이노용 초음파 센서의 경우 'HC-SR04' 모듈을 많이 사용합니다. 흡사 스피커와 자동차 배기구 처럼 생겼습니다.
초음파는 인간이 들을 수 있는 최대 한계 범위를 넘느 주파수를 갖는 음압을 의미합니다. 사람이 들을 수 없는 고주파 영역의 음파를 말하며, 보통의 사람은 20KHZ 정도의 영역을 감지할 수 있고 그 이상의 영역의 경우 초음파 영역이라고 지칭합니다.
아두이노에서 사용하는 HC-SR04 초음파 센서는 40KHZ 영역대의 초음파를 방출하고 송신기 수신기 두개의 트랜스 듀스와 수신기에서 방출된 초음파가 물체에 반사돼 수신기에 다시 돌아오는 시간을 통해 거리를 계산합니다.
동작 전압 | 5V DC |
동작 전류 | 15mA |
측정 범위 | 2~400cm |
오차 | 0.3cm |
초음파 속도 | 340m/s |
발생 초음파 | 약 40khz |
effectual angle | <15도 |
HC-SR04 센서 연결 방법
HC-SR04의 경우 다른 센서들과 같이 이용하지 않는 경우 연결은 비교적 간단합니다. 초음파 센서는 5V 전압에서 구동하며 센서의 VCC핀을 5V에 GND는 GND에 그대로 연결합니다. 송신부인 chirp 모듈에서 trig 핀은 아두이노 판 13번 핀에 연결하고 수신부인 echo 핀은 9번 핀에 연결합니다. 프로그램 코딩을 이 숫자로 쓸거라 여기 꽂았습니다. 편하신 숫자에 꼽고 코딩 내용을 바꾸시면 됩니다.
HC-SR04의 간단 코딩 소스
int echo = 9; //echo port
int trig = 13; //trigger port
float cycletime;
float distance;
void setup()
{
Seiral.begin(9600);
pinMode(echo, INPUT);
pinMode(trig, OUTPUT);
}
void loop()
{
digitalWrite(trig, HIGH);
delay(10);
digitalWrite(trig, LOW);
cycletime = pulseIn(echo, HIGH);
distance = ((340 * cycletime) / 10000) / 2;
Serial.print(distance);
Serial.println("cm")
delay(100);//상황에 맞게 딜레이 조절
}
설명
HC-SR04 초음파 센서 는 아두이노 센서 이용 시 필요한 여러 라이브러리를 필요로 하지 않습니다. 주로 digitalWrite와 pinMode 명령어를 사용합니다. 그리고 pulseln 명령어를 사용해 임의로 거리를 측정하는 코딩을 하도록 하겠습니다. 딜레이는 임의로 100 값을 주겠습니다.
pinmode output, input : 초음파 센서 trig핀은 초음파를 내보내고 echo핀으로 다시 음파를 받기 때문에 이 설정을 합니다.
pulsln 함수는 핀번호, 상태의 형태로 돼있으며 핀 상태가 바뀌면 그때까지 경과한 값을 ms 단위로 반환해줍니다.
distance는 거리를 cm단위로 측정하기 위해 속도(340m/s)의 음파가 돌아오는 시간을 계산한 식입니다.
'유용한정보모음' 카테고리의 다른 글
투썸 플레이스 캠핑 '피크닉 테이블 화이트' 굿즈 (0) | 2020.07.30 |
---|---|
스마트 스토어 위탁 운영 방식과 주의점 (1) (0) | 2020.07.26 |
유충 원인과 영향 그리고 수돗물 대처법 (0) | 2020.07.26 |