#include char im[128]; char data[128]; const int pinLED0 = 3;// Sorti numérique connecté à la LED0 const int pinLED1 = 4; // Sorti numérique connecté à la LED1 const int pinLED2 = 5;// Sorti numérique connecté à la LED2 void setup() { Serial.begin(115200); pinMode(pinLED0, OUTPUT); pinMode(pinLED1, OUTPUT); pinMode(pinLED2, OUTPUT); } void loop(){ int static i = 0; static long tt; int val; if (millis() > tt){ if (i < 128){ val = analogRead(A0); data[i] = val / 4 - 128; im[i] = 0; i++; } else{ //this could be done with the fix_fftr function without the im array. fix_fft(data,im,7,0); // I am only interessted in the absolute value of the transformation for (i=0; i< 64;i++){ data[i] = sqrt(data[i] * data[i] + im[i] * im[i]); } for (int e=0; e< 64; e++){ Serial.print(data[e], DEC); Serial.print(" "); //do something with the data values 1..64 and ignore im if(e == 63){ Serial.print("\n\n"); delay(100); } if(data[0]>22) { digitalWrite(pinLED0, HIGH); } if(data[1]>14) { digitalWrite(pinLED1, HIGH); } if(data[24]>1) { digitalWrite(pinLED1, HIGH); } else { digitalWrite(pinLED0, LOW); digitalWrite(pinLED1, LOW); digitalWrite(pinLED2, LOW); } tt = millis(); } } }