나는 arduino 및 초음파 센서 HC-SR04 및 PWM으로 어려움을 겪고 있습니다. arduino pro mini를 사용하고 있습니다. 또한 NewPing 라이브러리를 사용합니다.Arduino HC-SR04 PWM 간섭
newping 라이브러리 예제는 음파 탐지기가 연결된 경우 완벽하게 작동하며 천장 방향으로 위쪽을 향하면 약 170cm가됩니다.
그러나 다른 핀 (이 경우 핀 3)에서 pwm 호출을 추가하면 소나가 최대 41cm를 출력하며 그 아래의 모든 것은 잡음이 많지만 작습니다.
필자는 PWM 핀에 거의 아무 것도 연결하지 않았으며 capasitor와 저항 만 있습니다. 나는 모터도 있었지만 디버깅을 위해 그것을 제거했다. 내 배선의
코드 :
#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을 얻는 방법입니다.
전원을 켠 후에 첫 번째 읽기가 정확하고 나머지는 잘못되어있는 것 같습니다. 41 –