Page 345 - 최강 아두이노 퍼스트 참고서
P. 345
DIRECT TRIG, ECHO 사용
아두이노 스케치의 기본 제공 함수만을 사용하여 코드를 작성하면 아래와 같습니다.
예제코드: http://www.allfirst.co.kr/pds/arduinoLib/hc_sr04_ex_1.ino
#define trigPin 12
#define echoPin 13
void setup() {
// 시리얼 포트 9600 속도 초기화.
Serial.begin (9600);
// 센서 Trig 연결 포트를 출력으로 설정합니다. pinMode (trigPin,
OUTPUT);
// 센서 에코 연결핀은 입력 모드로 설정.
pinMode (echoPin, INPUT);
}
void loop() {
// 지속시간 , 거리 변수 정의
int duration, distance;
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH); distance =
(duration/2) / 29.1;
if (distance >= 200 || distance <= 0)
{
Serial.println("Out of range");
}
else
{
Serial.print(distance);
Serial.println(" cm");
}
delay(500);
}
PULSEIN 함수 사용 설명
위의 코드에는 duration = pulseIn(echoPin, HIGH); 라는 함수를 사용합니다.
직관적인 이해는 echoPin 으로 지정된 포트의 값이 HIGH 신호로 변경되기까지의 시간을 반
환하는 함수입니다. 변경되기까지의 시간은 pulseIn 함수 호출 시간부터입니다.
함수 선언 모체는 아래와 같습니다.
345