Paso 3: código
Este es el código que utilizamos para el visualizador, solo subirlo a arduino/*
FFT para v0.9 escudo jajaja
por Andy Doro
http://andydoro.com/
basado en FFT biblioteca y código de los foros de Arduino y
la biblioteca de Charlieplexing para el escudo de LoL.
*/
#include < Charliplexing.h >
#include < fix_fft.h >
#define AUDIOPIN 4
char la im [128], datos [128];
char data_avgs [14];
int i = 0, val;
void setup() {}
LedSign::Init(); Initilizes el escudo jajaja
}
void loop() {}
para (i = 0; i < 128; i ++) {}
Val = analogRead(AUDIOPIN);
datos [i] = val;
im [i] = 0;
};
fix_fft(Data,IM,7,0);
para (i = 0; i < 64; i ++) {}
datos [i] = sqrt (datos [i] * datos [i] + im [i] * im[i]); Esto obtiene el valor absoluto de los valores de la matriz, por lo que sólo tratamos con números positivos
};
promedio bares juntos
para (i = 0; i < 14; i ++) {}
data_avgs [i] = (datos [i * 4] + datos [i * 4 + 1] + datos [me * 4 + 2] + datos [i * 4 + 3]); medio de Junta
data_avgs [i] = mapa (data_avgs [i], 0, 0, 30, 9); reasignación de valores para LoL
}
Set LoLShield
para (int x = 0; x < 14; x ++) {}
para (int y = 0 y < 9; y ++) {}
Si (y < data_avgs[13-x]) {/ / 13-x invierte los bares así que bajas a altas frecuencias se representan de izquierda a derecha.
LedSign::Set(x,y,1); prende el LED
} else {}
LedSign::Set(x,y,0); fijar el LED apagado
}
}
}
retardo (30);
}