// =========================== TICK ===========================
// опрашивать как можно чаще. Может принимать значение, если это виртуальный анализатор
// вернёт true при окончании анализа выборки
bool tick(int read = -1);
// ========================== SETTINGS ==========================
void setPin(int8_t pin); // указать пин АЦП
void setDt(uint16_t dt); // установить время между опросами АЦП (мкс) (по умолч. 500)
void setWindow(uint8_t window); // установка ширины окна выборки (по умолч. 20)
void setTrsh(uint16_t trsh); // установить порог громкости в единицах АЦП (умолч 40)
// ========================== VOLUME ==========================
void setVolDt(uint8_t dt); // установить период фильтрации громкости (умолч 20)
void setVolK(uint8_t vk); // установить коэффициент плавности громкости 0-31 (умолч 25)
uint16_t getVol(); // получить громкость в пределах setVolMin.. setVolMax
void setVolMin(uint8_t vol); // установить минимальную величину громкости (умолч 0)
void setVolMax(uint8_t vol); // установить максимальную величину громкости (умолч 100)
// ========================= AMPLITUDE =========================
void setAmpliDt(uint8_t dt); // установить период фильтрации амплитудных огибающих
void setAmpliK(uint8_t rk); // установить коэффициент плавности амплитуды 0-31 (умолч 31)
uint16_t getMin(); // получить текущее значение огибающей минимумов (с v1.5 - 0)
uint16_t getMax(); // получить текущее значение огибающей максимумов
// =========================== PULSE ===========================
void setPulseMax(uint8_t maxV); // верхний порог срабатывания пульса (по шкале громкости)
void setPulseMin(uint8_t minV); // нижний порог перезагрузки пульса (по шкале громкости)
void setPulseTimeout(uint16_t tout); // таймаут пульса, мс
bool pulse(); // резкий скачок громкости (true)
// ========================== RAW DATA ===========================
uint16_t getRaw(); // получить значение сырого сигнала за выборку
uint16_t getTrsh(); // получить порог громкости в единицах АЦП
// амплитудный анализ звука
#include "VolAnalyzer.h"
VolAnalyzer analyzer(10);
void setup() {
Serial.begin(115200);
analyzer.setVolK(20);
analyzer.setTrsh(10);
analyzer.setVolMin(10);
analyzer.setVolMax(100);
}
void loop() {
if (analyzer.tick()) {
//Serial.print(analyzer.getVol());
//Serial.print(',');
Serial.print(analyzer.getRaw());
Serial.print(',');
Serial.print(analyzer.getMin());
Serial.print(',');
Serial.println(analyzer.getMax());
}
}
Семейная психология: основы семейного консультирования
inpsycho.ru/additional_education/441?block_id=28