2017-03-13 2 views
0

나는 arduino 및 초음파 센서 HC-SR04 및 PWM으로 어려움을 겪고 있습니다. arduino pro mini를 사용하고 있습니다. 또한 NewPing 라이브러리를 사용합니다.Arduino HC-SR04 PWM 간섭

newping 라이브러리 예제는 음파 탐지기가 연결된 경우 완벽하게 작동하며 천장 방향으로 위쪽을 향하면 약 170cm가됩니다.

그러나 다른 핀 (이 경우 핀 3)에서 pwm 호출을 추가하면 소나가 최대 41cm를 출력하며 그 아래의 모든 것은 잡음이 많지만 작습니다.

필자는 PWM 핀에 거의 아무 것도 연결하지 않았으며 capasitor와 저항 만 있습니다. 나는 모터도 있었지만 디버깅을 위해 그것을 제거했다. 내 배선의

그림 : enter image description here

코드 :

#include <NewPing.h> 

#define TRIGGER_PIN 8 // Arduino pin tied to trigger pin on the ultrasonic sensor. 
#define ECHO_PIN  7 // Arduino pin tied to echo pin on the ultrasonic sensor. 
#define MAX_DISTANCE 200 
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); 
int p = 3; 
void setup() { 
    // put your setup code here, to run once: 
    pinMode(p,OUTPUT); 
    Serial.begin(115200); 
} 

void loop() { 
    delay(50);      // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings. 
    Serial.print("Ping: "); 
    int d = sonar.ping_cm(); 
    Serial.print(d); // Send ping, get distance in cm and print result (0 = outside set distance range) 
    Serial.println("cm"); 
    analogWrite(p,d); 

} 

내가 핀 3에서 모든 것을 제거하면 문제가 사라 않지만,이 배선이 어떤 영향을 미칠 수 어떻게 표시되지 않습니다, 특히 모터가없는 상태에서.

모든 아이디어는 동시에 수중 음파 탐지기와 pwm을 얻는 방법입니다.

+0

전원을 켠 후에 첫 번째 읽기가 정확하고 나머지는 잘못되어있는 것 같습니다. 41 –

답변

0

HC-SR04의 핀 색상을 확인하십시오. "황동"색의 핀이있는 모델에는 결함이 있습니다. 그들은 틀린 독서를 할지도 모르다. "silver-y-ish"핀이있는 모델은 더욱 정확합니다. 그 결함은 거기 있지 않습니다.

또한 거리 센서 용으로 핀 2 & 3을 사용하고 PWM 용으로 다른 것을 사용해보십시오.