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
声音传感器上的针脚没有动过。
答案 0 :(得分:1)
让我们开始吧
我尝试从D0读取引脚,也从A0的模拟引脚读取
根据传感器和要实现的目标,您可以一个接一个地工作,但是了解基本区别很重要。数字引脚只有2个状态(高和低),您可以将其视为1和0。了解有关数字引脚here
的更多信息尽管模拟引脚的值确实可以在0-1023之间。详细了解模拟引脚here
现在,当我们清除此问题时。让我们转到:
Pin不断给我1,A0几乎给我值 如果我真的用力击打传感器,则可以升到26,最高可以升到29。
因此,很明显,有一些电压进入您的引脚。我认为这里正在发生两件事之一。
由于电路板的精度和其他一些环境因素,这种从26-29的转换只是标准值的变化。 (这也可能是传感器损坏或连接错误)
我假设您在电路中使用某种电阻器,以确保传感器可以处理电流。如果是这种情况,我认为您使用的电阻可能比传感器所需的电阻高得多。
当涉及到代码时,它很简单,说明您做对了。如果需要更详细的帮助,请附加一个方案或提供有关电路的信息。
答案 1 :(得分:0)
似乎声音传感器确实可以工作,但实际上只关心声音变化,因为声音变化确实如此,所以为什么数字没有真正变化。解决方案:购买另一个声音传感器或进行相应调整。