| /* SPH0645 MEMS Microphone Test (Adafruit product #3421) | |||||
| * | |||||
| * Forum thread with connection details and other info: | |||||
| * https://forum.pjrc.com/threads/60599?p=238070&viewfull=1#post238070 | |||||
| */ | |||||
| #include <Audio.h> | |||||
| // GUItool: begin automatically generated code | |||||
| AudioInputI2S i2s1; //xy=180,111 | |||||
| AudioFilterStateVariable filter1; //xy=325,101 | |||||
| AudioAmplifier amp1; //xy=470,93 | |||||
| AudioAnalyzeFFT1024 fft1024_1; //xy=616,102 | |||||
| AudioConnection patchCord1(i2s1, 0, filter1, 0); | |||||
| AudioConnection patchCord2(filter1, 2, amp1, 0); | |||||
| AudioConnection patchCord3(amp1, fft1024_1); | |||||
| // GUItool: end automatically generated code | |||||
| void setup() { | |||||
| AudioMemory(50); | |||||
| filter1.frequency(30); // filter out DC & extremely low frequencies | |||||
| amp1.gain(8.5); // amplify sign to useful range | |||||
| } | |||||
| void loop() { | |||||
| if (fft1024_1.available()) { | |||||
| // each time new FFT data is available | |||||
| // print 20 bins to the Arduino Serial Monitor | |||||
| Serial.print("FFT: "); | |||||
| for (int i = 0; i < 20; i++) { | |||||
| float n = fft1024_1.read(i); | |||||
| if (n >= 0.001) { | |||||
| Serial.print(n, 3); | |||||
| Serial.print(" "); | |||||
| } else { | |||||
| Serial.print(" -- "); // don't print "0.000" | |||||
| } | |||||
| } | |||||
| Serial.println(); | |||||
| } | |||||
| } |