audio - 带有 Arduino 的声音传感器始终在串行监视器中显示 1023

标签 audio arduino android-sensors arduino-uno

我连接了一个声音传感器模块,它有 3 个引脚:Vcc、grnd 和输出。

代码粘贴在下面,我注意到串口上显示的值始终是 1023,无论声音如何。怎么了?

int sensorPin = A0;
void setup () 
{
pinMode (ledPin, OUTPUT);
Serial.begin (9600);
}
void loop () 
{
sensorValue = analogRead (sensorPin);
Serial.println (sensorValue, DEC);
delay(1000);
}

最佳答案

我假设您有一个简单的模拟输出传感器模块,它根据环境音量级别提供 10 位模拟值。如果这个假设是正确的,那么您正确连接了所有引脚并且接收到的值始终超出范围或处于最大值,您可能必须集成一个电阻器才能获得有效值。尝试一个小电阻并增加电阻,直到您收到合适的值。也许您的模块的文档提供了更多信息。

如果您有例如 Adafruit 麦克风放大器或类似的东西,您还应该查看制造商或分销商的教程网站,它几乎总是为您提供有关模块的编程、电路和可能性的全面概述。

以下来自 Adafruits Microphone Amplifier 的代码举例说明了您如何处理采样率、转换信号和打印出当前音量级别。

/****************************************
Example Sound Level Sketch for the 
Adafruit Microphone Amplifier
****************************************/

const int sampleWindow = 50; // Sample window width in mS (50 mS = 20Hz)
unsigned int sample;

void setup() 
{
   Serial.begin(9600);
}


void loop() 
{
   unsigned long startMillis= millis();  // Start of sample window
   unsigned int peakToPeak = 0;   // peak-to-peak level

   unsigned int signalMax = 0;
   unsigned int signalMin = 1024;

   // collect data for 50 mS
   while (millis() - startMillis < sampleWindow)
   {
      sample = analogRead(0);
      if (sample < 1024)  // toss out spurious readings
      {
         if (sample > signalMax)
         {
            signalMax = sample;  // save just the max levels
         }
         else if (sample < signalMin)
         {
            signalMin = sample;  // save just the min levels
         }
      }
   }
   peakToPeak = signalMax - signalMin;  // max - min = peak-peak amplitude
   double volts = (peakToPeak * 3.3) / 1024;  // convert to volts

   Serial.println(volts);
}

关于audio - 带有 Arduino 的声音传感器始终在串行监视器中显示 1023,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31325808/

相关文章:

javascript - 空并在 html 页面上放置外部 javascript

ios - Red Bear Lab BLE Shield 无法连接到我的 iPhone

c++ - 调用带有字符串参数的函数直接与变量

android - 在 Android 中检测 throw 手势

android - 如何使用 SensorEventListener 确定手机相对于磁北的方向

python - 从numpy生成的wav文件无法听见(完全静音)

bash - 如何使用zenity查找.mp3文件

android - 如果满足陀螺仪读数等条件,如何获得时间

带有实时音频流的 Android 背景音频

php - 与 Arduino、PHP 和 OpenWrt 的串行连接。漏洞?