Arduino声音传感器仅显示25-29之间的值

时间:2019-06-16 06:58:24

标签: audio arduino sensor

Arduino声音传感器无法提供准确的值

我已经尝试从D0读取pin以及从A0的模拟读取。引脚不断地给我1,而A0几乎只给我26的值,如果我真的用力击打传感器,它可能会上升到29。

void setup() {
    pinMode(A0, INPUT); // changes nothing
}
void loop() {
    int soundVal;
    soundVal = analogRead(A0);
    Serial.print("Sound = ");
    Serial.println(soundVal, DEC);
    delay(500);
}

我希望得到一个介于0到1024之间的值,但是我只能得到介于25到29之间的值,这使得在声音高或低以及检测到声音的情况下阅读非常困难

编辑:我已经将声音传感器上的GRD连接到我的Arduino上的GRD,A0从声音传感器连接到Arduino上的A0,声音传感器上的+引脚连接到5V,并保持因为我真的不需要,所以D0声音传感器上的针脚没有动过。

2 个答案:

答案 0 :(得分:1)

让我们开始吧

  

我尝试从D0读取引脚,也从A0的模拟引脚读取

根据传感器和要实现的目标,您可以一个接一个地工作,但是了解基本区别很重要。数字引脚只有2个状态(高和低),您可以将其视为1和0。了解有关数字引脚here

的更多信息

尽管模拟引脚的值确实可以在0-1023之间。详细了解模拟引脚here

现在,当我们清除此问题时。让我们转到:

  

Pin不断给我1,A0几乎给我值   如果我真的用力击打传感器,则可以升到26,最高可以升到29。

因此,很明显,有一些电压进入您的引脚。我认为这里正在发生两件事之一。

  1. 由于电路板的精度和其他一些环境因素,这种从26-29的转换只是标准值的变化。 (这也可能是传感器损坏或连接错误)

  2. 我假设您在电路中使用某种电阻器,以确保传感器可以处理电流。如果是这种情况,我认为您使用的电阻可能比传感器所需的电阻高得多。

当涉及到代码时,它很简单,说明您做对了。如果需要更详细的帮助,请附加一个方案或提供有关电路的信息。

答案 1 :(得分:0)

似乎声音传感器确实可以工作,但实际上只关心声音变化,因为声音变化确实如此,所以为什么数字没有真正变化。解决方案:购买另一个声音传感器或进行相应调整。