Аналоговый выход обеспечивает близкий диапазон значений

Я пытаюсь получить хороший диапазон значений от звукового датчикаVMA309.

Однако, когда я подключаю его правильно, он дает мне диапазон значений +/-5, как показано ниже. В документации говорится, что он должен давать числа от 0 до 1024.

Я полностью повернул потенциометр с обеих сторон, и это изменило только число, но оно сохраняет число в диапазоне 5 чисел:

Пример:

626
623
624
624
624
624
623
624
624

Мой код:

int sensorPin = A5;
int sensorValue = 0;
void setup ()

{
  Serial.begin (9600)  ;
}

void loop()
{
  sensorValue = analogRead(sensorPin);
  delay (500);
  Serial.println (sensorValue, DEC);
}

Что я здесь делаю не так?

Изображение проводов: Я также попробовал провести проводку напрямую без макета. Но это дало те же результаты.

Я использовал код, приведенный в документации VMA 309.

, 👍1

Обсуждение

Первоначальным создателем мог быть веллеман: https://www.velleman.eu/products/view/?id=435532 У них также есть схема: https://www.velleman.eu/downloads/29/infosheets/vma309_scheme.pdf Аналоговый выход-это сигнал непосредственно с микрофонного выхода. Это глупая схема. Когда используется неправильный микрофон или когда микрофон повернут на 180 градусов и припаян к плате, он не будет работать. Вероятно, вы не делаете ничего плохого, но чтобы быть уверенным, вы можете показать код, который вы используете, и фотографию проводки. Вы пробовали дуть в микрофон?, @Jot

Спасибо за ваш ответ, да, я пробовал это сделать. Это привело к разнице дальности полета максимум около 30 метров. Я добавил код, а также изображение arduino с датчиком., @bassyproductionz

Из рисунка я не понимаю, питается ли датчик от 5 В или 3,3 В. Если он питается от 3,3 В , то вы ошибаетесь., @leoc7

Я попробовал 3.3 и 5V на задней панели продукта написано, что оба должны работать. При обоих напряжениях я получаю одни и те же результаты, только разные значения, @bassyproductionz

Попробуйте исключить проблему из Arduino, вы запустите код для всех аналоговых контактов (A0, A1 и т. Д.) И проверьте, одинаков ли результат.., @leoc7

Попробуйте сначала понять, как работает модуль АЦП. Проверьте его с помощью простого потенциометра и узнайте, как меняются значения в зависимости от делителя напряжения с потенциометра. Кроме того, название вашего вопроса вводит в заблуждение, поскольку "аналоговый выход" в мире Arduino относится к записи значений ШИМ через вывод из Arduino с использованием функции analogWrite. В вашем случае проблема связана с аналоговым сигналом, подаваемым на аналоговый "входной" вывод, @Daniel Melendrez


2 ответа


0

Arduino - это очень весело, но вам лучше держаться подальше от таких модулей.

Модуль представляет собой резистор и электретный микрофон. Существует также компаратор для цифрового выхода. Когда у вас есть электретный микрофон и вы добавляете резистор 4k7 или 10k, у вас получается то же самое.

Сигнал с микрофона не усиливается, и Arduino получает только аналоговое значение звука. Модуль не измеряет громкость звука.

Я думаю, что Веллеман делает их: www.velleman.eu/products/view/?id=435532
Они так добры, что предоставили схему: vma309_scheme.pdf

Можете ли вы двигаться дальше и использовать Arduino для чего-то другого?
Этот модуль с этим микрофоном, вероятно, не будет работать.
Если вы хотите измерить уровень звука, то, возможно, вы можете сделать схему самостоятельно или купить модуль получше.

"Звуковое давление" - это то, насколько громкий звук.
Наиболее часто используемый стандарт называется "Уровень звукового давления" или "SPL" и измеряется в дБ (децибеллах).

,

1

У меня была похожая проблема с извлечением данных в модуль ardino. - при питании 5В показания колебались от 1009 до 1023. - при питании 3.3В показания были в диапазоне 610~640

Я подключил осциллограф и обнаружил, что модуль микрофона выдает выходное напряжение переменного тока макс. 340 мВ при постоянном напряжении 3,3 (при напряжении питания 5 В) и 1,7 (при напряжении питания 3,3 В).

На самом деле было совершенно ясно, что, несмотря на то, что микрофон дает и выдает, нам нужно учитывать аналоговый исх. напряжение, для АЦП вход никогда не может быть выше, чем Vref. т.е. 2,56 В. Таким образом, питание 5 В не будет работать. Также, если выбрано значение 1,1 Vref, АЦП всегда будет оставаться насыщенным на уровне 1023 и не будет работать. Также учтите необходимость вычитания и смещения 1,7 В при работе с источником питания 3,3 В.

Подводя итог, 1- Установите Vref модуля Arduino ADC на 2,56 В. 2- Используйте источник питания 3,3 В для датчика звука VMA309. 3- Рассмотрим смещение по постоянному току примерно на 640 отсчетов, и фактический голосовой сигнал будет располагаться на этом значении смещения. Может потребоваться отделить программный код. 4- Установите пороговое значение модуля звукового датчика VMA309 в разумной точке, чтобы захватить весь спектр голоса. 5- Задержка (мс) в коде должна быть удалена, чтобы получить максимальную скорость захвата, или установить АЦП в автономном режиме для захвата с максимальной частотой дискретизации (15 KSPS для ATmega2560).

,