Arduino Micro + Max4466 — Шум на A0
У меня есть Arduino Micro и коммутационная плата MAX4466 ECM/AMP (https://www.adafruit.com/ продукт/1063). Я питаю Arduino Micro от порта USB.
На MAX4466 (к Arduino) я подключил VCC к 3,3 В, GND к GND и OUT к A0. Я также подключил 3,3 В к AREF.
Используя следующий код, я заметил значительные всплески шума на выходе, как показано на графике ниже.
Я не совсем уверен, что я сделал не так, и был бы признателен за любую информацию / критику, которая могла бы привести к получению чистого сигнала.
void setup()
{
Serial.begin(9600);
analogReference(EXTERNAL);
}
void loop()
{
Serial.println(analogRead(0));
}
@Seidr, 👍0
Обсуждение2 ответа
Сам OP решает эту проблему:
Хорошо, поэтому я подозревал, что виновата плата Arduino. дешевый китайский клон. После покупки официального Микро и проводки тот же компонент, я получаю хороший чистый сигнал (за исключением небольшого допустимый уровень шума), который отражает входные тоны точно. Еще раз спасибо за ваш вклад!
Интересный сюжет. У меня создается впечатление, что ваш эталон провисает, рассмотрите возможность добавления некоторого локального хранилища (тантовые / керамические конденсаторы) через питание процессора на контактах и через эталонный контакт процессора. Также было бы интересно узнать, улучшит ли производительность добавление большей задержки между измерениями. Спасибо, что поделились своей проблемой.
- Сопряжение наушников TRRS с Arduino Uno
- Отрицательное напряжение АЦП Arduino Due
- Выход AnalogRead() колеблется, даже если контакт заземлен
- Как прочитать значение АЦП без общего заземления? (Возможно или нет!)
- Если я использую схему смещения для сигнала, поступающего на аналоговый вход, повлияет ли это на работу АЦП?
- Шум в Analog Read Serial от инструментального усилителя (ina122p)
- Увеличение диапазона сигнала смещения постоянного тока (программное обеспечение)
- Является ли определение функции улучшением скорости а не вычислением среднего значения для каждого аналогового входа отдельно
А если сэмплировать ровно 50 Гц или кратно ей?, @Ignacio Vazquez-Abrams
@IgnacioVazquez-Abrams Я только что взял еще один образец, как с приведенным выше кодом, так и с приведенным выше кодом, с добавлением вызова задержки на 20 мс для каждого образца. На этом скриншоте показан результат: http://s21.postimg.org/4fplz8g8n/Screenshot_from_2015_06_27_06_00_54.png. Как вы можете видеть, шум теперь намного ниже, и я больше не вижу таких массивных пиков ... хотя некоторые пики все еще есть, но с гораздо меньшей амплитудой., @Seidr
Вы можете усреднить образцы, чтобы получить более низкий уровень шума. Но это зависит от того, чего вы пытаетесь достичь. Как вы заметили, шум дает только значения ниже ожидаемых, а не выше. Так что, если вы хотите, например, обнаружить хлопок, этот вид шума на самом деле не повлияет на вашу программу, так как вы будете измерять пики. (PS попробуйте увеличить скорость последовательного соединения и посмотрите, что это даст.), @Gerben
Вы можете попробовать добавить резистор между 3,3 В и AREF или, что еще лучше, катушку индуктивности., @Gerben
@Gerben спасибо за комментарии. На самом деле у меня есть готовый скетч с усреднением по 4 кадрам, просто еще не было минуты, чтобы протестировать его :) RE резистор, я читал то же самое о между A0 и GND. Позже я посмотрю, смогу ли я подобрать несколько разных резисторов и попробовать их :) Доложу, @Seidr
Попробуйте это: цель состоит в том, чтобы изолировать модуль микрофона от любых помех Arduino или источника питания. | Измерьте ток модуля миллиамперметром. [** Спецификация здесь для 4466 **](http://www.adafruit.com/datasheets/MAX4465-MAX4469.pdf) - ток, вероятно, неизвестен, но, вероятно, < 1 мА. Возможно, нет. Добавьте серию R, которая падает примерно на 0,3 В (Vcc min = 2,4 В) R max = 0,3 В/мА_drawn. например, если I = 1 мА, Rn=max = 0,3/0,001 = 300 Ом -> используйте 270 Ом или меньше. Добавьте большой конденсатор в модуле от Vcc к земле и запитайте Vcc через Ras выше. C = 100 мкФ, вероятно, в порядке. Выше не помешает., @Russell McMahon
Спасибо @RussellMcMahon за ваш вклад. Я не смог ничего получить от своих местных Maplins, так как они были закрыты, но я зайду либо завтра, либо в понедельник. Я также обновлю этот вопрос фотографией моего (конечно, ужасного) макета. У меня нет миллиамперметра, но я посмотрю, смогу ли я его приобрести. Это должен был быть простой небольшой эксперимент с аудиомагнитофоном, поэтому, если стоимость оборудования будет относительно высокой, я не уверен, что могу гарантировать это прямо сейчас ... посмотрим. Я вернусь!, @Seidr
@Seidr «миллиамперметр» может быть практически любым современным цифровым мультиметром (цифровым мультиметром) - по сути, любой из них может измерять до 200 мА, а стоимость может быть скромной, и они совершенно бесценны при работе с электроникой. | Общая цель состоит в том, чтобы подавать чистое питание на модуль и получать чистый сигнал обратно. Пути заземления должны быть прямыми, и если несколько объектов питаются, используйте заземление «звезда» - все заземления исходят из одной точки - не образуются петли., @Russell McMahon
Вытащил свой старый мультиметр, и он показывает ток 2 мА. Завтра попробую еще раз купить запчасти. Спасибо :), @Seidr
Спасибо за ваш вклад. Кажется, я обнаружил причину шума - последовательный порт. Чем выше скорость передачи данных, тем выше частота шума. Я также пробовал ту же настройку на Arduino Uno друга и не смог обнаружить никакого шума. Я собираюсь завтра попробовать это с автономным источником питания и посмотреть, решит ли это проблемы с шумом или нет. Использование небольшого конденсатора для заземления также немного помогло :), @Seidr
Итак, я подозревал, что виновата Arduino. Оказывается, это дешевый китайский клон. После покупки официального Micro и подключения того же компонента я получаю хороший чистый сигнал (за исключением небольшого количества приемлемого шума), который точно отражает входные тоны. Еще раз спасибо за весь вклад!, @Seidr