我一直在努力使用 arduino 和超声波传感器 HC-SR04 和 PWM。我正在使用 arduino pro mini。也使用 NewPing 库。
如果我只连接了声纳并且向上指向天花板时我得到大约 170 厘米,那么 newping 库示例就可以完美运行。
但是,如果我在不同的引脚(在本例中为引脚 3)上添加 pwm 调用,声纳输出最大为 41 厘米,低于此范围的所有内容都可以正常工作,尽管有点嘈杂。
我几乎没有连接到 pwm 引脚,只有一个电容器和一个电阻器。我也有一个电机,但为了调试把它拆了。
代码:
#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 同时工作的任何想法。