Проблема с простой схемой обнаружения звука с использованием микрофона

Я очень новичок в этом сообществе. Мой первый проект с Arduino использовал LDR (резистор, зависящий от света) в такой схеме:

 введите описание изображения здесь>> </a> </p>

<p> Вход, который я получил, как ожидалось, между 0 - 1023. </p>

<p> Затем я попробовал аналогичный проект на этом звуковом датчике следующим образом: </p>

<p> <a href= введите описание изображения здесь>> </a> </p>

<p> Моя схема выглядит следующим образом: </p>

<ol>
<li> A0 на микрофоне до A0 на Arduino </li>
<li> GND to GND </li>
<li> + ve до 5V </li>
<li> Светодиод с резистором к цифровому выводу 9 на Arduino </li>
</ol>
<p> Моя программа выглядит следующим образом: </p>

<pre><code>---- +: = 0 = + ----</code></pre>

<p> Проблема заключается в том, что последовательный монитор дает странное чтение, случайным образом давая 1023 и 0 через регулярные интервалы. </p>

<pre><code>---- +: = 1 = + ----</code></pre>

<p> Я не могу сам решить проблему, поэтому я пришел сюда. </p></body></html>

2 голоса | спросил 95_96 15 +03002016-10-15T00:30:24+03:00312016bEurope/MoscowSat, 15 Oct 2016 00:30:24 +0300 2016, 00:30:24

2 ответа


2

Я построил значения, которые вы получили в электронной таблице:

 Вход микрофона

Вы должны признать, что это похоже на звуковую волну! Если вы хотите знать, является ли это мягким звуком или громким звуком, вам действительно нужно увидеть максимальные значения (1023 в вашем случае). Если максимум равен 512, то, очевидно, входящий звук не такой громкий.

Альтернативой, если вы просто хотите громкости, является фильтрация входящего сигнала, например.

schematic

имитировать эту схему - Схема, созданная с использованием CircuitLab

Это сгладит входящее напряжение, чтобы последовательные показания были в более узком диапазоне.


Предупреждение. Судя по графику, вы можете получить отрицательный вклад в A0. Выводы Arduino не предназначены для отрицательного напряжения. Вы можете использовать диод для устранения отрицательного компонента.

ответил Nick Gammon 15 +03002016-10-15T01:29:08+03:00312016bEurope/MoscowSat, 15 Oct 2016 01:29:08 +0300 2016, 01:29:08
1

На основе вашего кода, похоже, вы пытаетесь использовать аналоговый сигнал для получения цифрового выхода (включение или выключение светодиода). Панель звукового сенсора делает это для вас и имеет цифровой выходной контакт под названием «D0».

Вот простой эскиз с использованием последовательного монитора, чтобы показать вам, что выдает датчик «D0». Подключите заземление и 5 вольт, как и раньше, и подключите датчик D0 к контакту 3 Arduino.

const byte DigitalInputPin = 3;

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

void loop(){
  Serial.print("Digital Pin = " );
  Serial.println(digitalRead(DigitalInputPin));
  delay(50);
}

Вам не нужно подключать датчик к Arduino, чтобы настроить его или проверить. На плате датчика есть 2 светодиода. Самый близкий к потенциометру включается, когда контакт D0 высок и выключен, когда он низкий. Вы используете потенциометр для установки «точки запуска» в зависимости от уровня звука, который вы хотите добиться высокого уровня.

ответил VE7JRO 30 PM00000090000004831 2017, 21:33:48

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132