void setup() {
Serial.begin(9600);
pinMode(2,OUTPUT); // 센서 Trig 핀
pinMode(3,INPUT); // 센서 Echo 핀
}
void loop() {
int duration, cm;
digitalWrite(2,HIGH); // 센서에 Trig 신호 입력
delayMicroseconds(10); // 10us 정도 유지
digitalWrite(2,LOW); // Trig 신호 off
duration = pulseIn(3, HIGH); // Echo pin: HIGH->Low 간격을 측정
cm = microsecondsToCentimeters(duration); // 거리(cm)로 변환
Serial.print(cm);
Serial.println("cm");
delay(300); // 0.3초 대기 후 다시 측정
}
int microsecondsToCentimeters(int microseconds) {
return microseconds / 29 / 2;
}
소리는 29 us 동안 1cm 이동 때문에 시간을 29로 나누고 갔다가 돌아 오니까 2로 나눔
우리가 trigger 에다가 10us 이상 전압을 가해주면 초음파가 발생한다.(burst)
burst 가 끝나면 echo pin 이 high 가 되고 puse 가 돌아오면 low 가 된다.
우리는 echo 의 high 인 구간의 시간을 측정하여서 물체와 의 거리를 예측 할 수 있다.
'공부,일 > 아두이노' 카테고리의 다른 글
아두이노 통신 (0) | 2021.07.19 |
---|---|
조이스틱 (0) | 2021.07.19 |
아두이노 회로 실습 (1) (0) | 2021.07.16 |
아두이노 회로 실습 (by fritzing ) (0) | 2021.07.15 |
아두이노 실습환경 구축 (0) | 2021.07.14 |
댓글