Аналоговый выход обеспечивает близкий диапазон значений
Я пытаюсь получить хороший диапазон значений от звукового датчика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.
2 ответа
Arduino - это очень весело, но вам лучше держаться подальше от таких модулей.
Модуль представляет собой резистор и электретный микрофон. Существует также компаратор для цифрового выхода. Когда у вас есть электретный микрофон и вы добавляете резистор 4k7 или 10k, у вас получается то же самое.
Сигнал с микрофона не усиливается, и Arduino получает только аналоговое значение звука. Модуль не измеряет громкость звука.
Я думаю, что Веллеман делает их: www.velleman.eu/products/view/?id=435532
Они так добры, что предоставили схему: vma309_scheme.pdf
Можете ли вы двигаться дальше и использовать Arduino для чего-то другого?
Этот модуль с этим микрофоном, вероятно, не будет работать.
Если вы хотите измерить уровень звука, то, возможно, вы можете сделать схему самостоятельно или купить модуль получше.
"Звуковое давление" - это то, насколько громкий звук.
Наиболее часто используемый стандарт называется "Уровень звукового давления" или "SPL" и измеряется в дБ (децибеллах).
У меня была похожая проблема с извлечением данных в модуль 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).
- Отправка значения с одного Arduino на другой
- Как подключить ардуино к разъему для наушников?
- Arduino непрерывно считывает значение АЦП с помощью прерывания
- Как использовать звуковой датчик LM393 + динамик в Arduino
- Колебания показаний датчика температуры LM35 (+- 5°C) с Arduino UNO
- Проблема с открытием нескольких текстовых файлов одновременно/по порядку с использованием <SD.h>
- Динамически обновить масштаб виджета Tkinter из портов Arduino с помощью python и firmata
- Считанное значение не меняется при вращении потенциометра в Arduino?
Первоначальным создателем мог быть веллеман: 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