Микрофон

nail2007
Offline
Зарегистрирован: 08.12.2017

Здравствуйте!

Имеется модуль микрофона, ардуино уно. Столкнулся я с такой проблемой:

При записи данных период дискретизации не одинаковый. На это ругается матлаб при построении спектограммы сигнала, тк промежуток между данными не равный.

Можно ли достичь равных промежутков между получаемыми данными?

Скетч использовал самый простой.

int soundPin = A2;
int val = 0;
 
void setup()
{
  Serial.begin(9600);
}
 
void loop(){
    val=analogRead(soundPin);
    Serial.println(val);
    delay(10);
}

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

писать наверное лучше в массив скидывая его в сериал периодически, делэй тут явно лишний

rkit
Offline
Зарегистрирован: 23.11.2016

Можно. Только придется учить теорию а не копипастить самый простой скетч.

Начни с изложения параметров изучаемого сигнала и требований по интервалу измерения.

b707
Offline
Зарегистрирован: 26.05.2017

nail2007 пишет:

Можно ли достичь равных промежутков между получаемыми данными?

перво-наперво вынести из цикла вывод в Cериал, так как вывод разных значений занимает разное время

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Тут, скорее, надо начать с переписывания в стиле blink without delay, чтобы вывод в Сериал вообще не влиял на интервал дискретизации.

Iv_
Iv_ аватар
Offline
Зарегистрирован: 06.04.2022

Сегодня развлекался с микрофонами MAX4466/ INMP441.
Пытался делать VU meter на WS2812.