我遇到了arduino声音传感器和LED的问题。我继续在我的串行监视器中获得0的值,同样的事情发生在我拥有的另一个声音传感器上。我目前正试图根据声音点亮LED,但串行监视器读数为0时,它不会激活代码。应该附上一张照片。声音传感器上的指示灯亮起,因此我知道GND和5V正在工作。因为很难说我使用330欧姆的电阻。我从elegoo入门套件中获得了声音传感器,所以我知道它可能很便宜。图片在最后的链接中。谢谢。
int MicPin = A0;
int MicValue1 = 0;
int MicValue2 = 0;
int led1 = 2;
int led2 = 4;
int led3 = 6;
int led4 = 8;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(MicPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
MicValue1 = analogRead(MicPin);
Serial.println(MicValue1);
delay(1);
MicValue2 = analogRead(MicPin);
Serial.println(MicValue2);
if (MicValue1 - MicValue2 > 1) {
digitalWrite(led1, HIGH);
delay(2000);
}
else {
digitalWrite(led1, LOW);
}
}
答案 0 :(得分:1)
我假设您有一个简单的模拟输出传感器模块,可根据环境音量级别提供10位模拟值。如果这个假设是正确的,那么你正确地连接所有引脚并且接收的值总是超出范围或最大值,你可能必须集成一个电阻来获得有效值。尝试使用小电阻并增加电阻,直到获得合适的值。也许您的模块文档提供了更多信息。
有一个小旋钮连接到传感器,我们需要旋转它来调整特定的电阻值,你可以在串口监视器中看到不同的值。
有用的link