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
   116   117   118   119   120   121   122   123   124   125   126