0

我一直在努力使用 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 同时工作的任何想法。

4

1 回答 1

0

检查 HC-SR04 的引脚颜色。带有“黄铜”色针的型号有缺陷。他们可能并且将会返回错误的读数。带有“silver-y-ish”引脚的模型更精确。缺陷不存在。

此外,尝试将引脚 2 和 3 用于距离传感器,将其他引脚用于 PWM。

于 2017-03-14T18:38:23.403 回答