Page 121 - 최강 아두이노 스마트 자동차 로봇 키트
P. 121
예제코드 2 – 다이렉트 Trig, Echo 사용
NewPing 등의 라이브러리를 사용하지 않고 직접 구현해 봅니다.
초음파 센서 모듈의 Trig, Echo 포트에 대한 컨트롤을 코드에서 처리합니다.
코드: 4wd_ex_4
#define TRIGGER_PIN 12
#define ECHO_PIN 13
void setup()
{
Serial.begin(9600);
pinMode(TRIGGER_PIN, OUTPUT); // 센서 Trig 핀, D12y
pinMode(ECHO_PIN, INPUT); // 센서 Echo 핀, D13
}
void loop()
{
long duration, cm;
digitalWrite(TRIGGER_PIN, HIGH); // 센서에 Trig 신호 입력
delayMicroseconds(10); // 10us 정도 유지
digitalWrite(TRIGGER_PIN,LOW); // Trig 신호 off
duration = pulseIn(ECHO_PIN,HIGH); // Echo pin: HIGH->Low 간
격을 측정
cm = microsecondsToCentimeters(duration); // 거리(cm)로 변환
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(300); // 0.3 초 대기 후 다시 측정
}
long microsecondsToInches(long microseconds)
{
// According to Parallax's datasheet for the PING))), there are
// 73.746 microseconds per inch (i.e. sound travels at 1130 feet per
// second). This gives the distance travelled by the ping, outbound
// and return, so we divide by 2 to get the distance of the obstacle.
// See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
120