반응형


초음파 센서 HC-SR04를 구입했습니다. 저렴해서 4개나 질렀는데....

( 로봇에 붙여 볼려고 많이 질렀는데 잘되려나 싶어요.. )






HC-SR04와 아두이노를 다음처럼 연결해주었습니다.



HC-SR04        arduino

VCC            5V

TRIG            12번

ECHO           11번

GND             GND



https://bitbucket.org/teckel12/arduino-new-ping/wiki/Home#!download-install 에서 다운로드를 클릭하여 받은 다음...압축을 풀어 C:\Users\webnautes\Documents\Arduino\libraries 위치에 복사해 넣어주었습니다.





아두이노 IDE를 다시 실행시켜 보면  추가된 라이브러리 예제를 찾을 수 있습니다. NewPingExample이 하나의 초음파 센서로부터 값을 얻어오는 예제입니다. 선택해서 불러오면..




아래와 같은 코드가 보입니다. HC-SR04 스펙상으로는 400cm까지 가능하다고 합니다. 아래에서 200을 400으로 수정하고 아두이노에 업로드 해봅니다.

  1. // ---------------------------------------------------------------------------  
  2. // Example NewPing library sketch that does a ping about 20 times per second.  
  3. // ---------------------------------------------------------------------------  
  4.   
  5. #include <NewPing.h>  
  6.   
  7. #define TRIGGER_PIN  12  // Arduino pin tied to trigger pin on the ultrasonic sensor.  
  8. #define ECHO_PIN     11  // Arduino pin tied to echo pin on the ultrasonic sensor.  
  9. #define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). 
  10.                          //Maximum sensor distance is rated at 400-500cm.  
  11.   
  12. NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.  
  13.   
  14. void setup() {  
  15.   Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results.  
  16. }  
  17.   
  18. void loop() {  
  19.   delay(50);                     // Wait 50ms between pings (about 20 pings/sec). 
  20.                                   //29ms should be the shortest delay between pings.  
  21.   Serial.print("Ping: ");  
  22.   Serial.print(sonar.ping_cm()); // Send ping, get distance in cm and 
  23.                                  //print result (0 = outside set distance range)  
  24.   Serial.println("cm");  
  25. }  





시리얼 모니터를 열어서.. 값을 확인하면서 거리 측정 태스트해봤는데 잘되네요.. 

그런데 거리가 무지 멀어지면 오류값이 나옵니다..

0cm라고 나오고 시간을 측정해봐도 0us라고 나오네요.. 

이건 다시 제대로 태스트해서 확인해봐야 할듯합니다. 


원래 이게 맞다네요.. 최대거리를 200으로 줄이면 최대거리 400에서 측정값 나오던 거리에서도 0값이 나옵니다.  0일때를 제외하고 처리해야겠습니다.





 





반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts