Stap 4: De Code
Hier is de code zoals in Arduino 1.0.1
//
Beat Sync
Een muziek visualiztion apparaat.
Gemaakt door
Carl Smith
penguinmagic
//
#include < fix_fft.h >
int geleid [] = {5,6,7,8,9,10,11,12};
int x = 0;
char im [128], gegevens [128];
char data_avgs [14];
int i = 0, val;
#define AUDIOPIN 3
VOID Setup
{
for (int i = 0; ik < 8; i ++)
{
pinMode (led [i], OUTPUT);
}
Serial.begin(9600);
}
void loop
{
voor (ik = 0; ik < 128; i ++) {}
Val = analogRead(AUDIOPIN);
gegevens [i] = val;
im [i] = 0;
};
fix_fft(Data,im,7,0);
voor (ik = 0; ik < 64; i ++) {}
gegevens [i] = sqrt (gegevens [i] * data [i] + im [i] * im[i]); Dit wordt de absolute waarde van de waarden in de
matrix, zodat we alleen omgaan met positieve getallen
};
gemiddelde bars samen
voor (ik = 0; ik < 14; i ++) {}
data_avgs [i] = data [ik * 4] + data [ik * 4 + 1] + data [ik * 4 + 2] + data [ik * 4 + 3]; gemiddelde samen
data_avgs [i] = kaart (data_avgs [i], 30, 0, 0, 9); remap waarden voor LoL
}
int-waarde = data_avgs [0]; //0 voor bas
ledArray(value);
}
VOID ledArray(int input)
{
//
Als (ingang > 8)
{
for (int i = 0; ik < 8; i ++)
{
digitalWrite (onder leiding [i], hoog);
}
}
anders als (ingang > 7)
{
for (int i = 0; ik < 7; i ++)
{
digitalWrite (onder leiding [i], hoog);
}
for (int i = 7; ik < 8; i ++)
{
digitalWrite (onder leiding [i], laag);
}
}
anders als (ingang > 6)
{
for (int i = 0; ik < 6; i ++)
{
digitalWrite (onder leiding [i], hoog);
}
for (int i = 6; ik < 8; i ++)
{
digitalWrite (onder leiding [i], laag);
}
}
anders als (ingang > 5)
{
for (int i = 0; ik < 5; i ++)
{
digitalWrite (onder leiding [i], hoog);
}
for (int i = 5; ik < 8; i ++)
{
digitalWrite (onder leiding [i], laag);
}
}
anders als (ingang > 4)
{
for (int i = 0; ik < 4; i ++)
{
digitalWrite (onder leiding [i], hoog);
}
for (int i = 4; ik < 8; i ++)
{
digitalWrite (onder leiding [i], laag);
}
}
anders als (ingang > 3)
{
for (int i = 0; ik < 3; i ++)
{
digitalWrite (onder leiding [i], hoog);
}
for (int i = 3; ik < 8; i ++)
{
digitalWrite (onder leiding [i], laag);
}
}
anders als (ingang > 2)
{
for (int i = 0; ik < 2; i ++)
{
digitalWrite (onder leiding [i], hoog);
}
for (int i = 2; ik < 8; i ++)
{
digitalWrite (onder leiding [i], laag);
}
}
anders als (ingang > 1)
{
for (int i = 0; ik < 1; i ++)
{
digitalWrite (onder leiding [i], hoog);
}
for (int i = 1; ik < 8; i ++)
{
digitalWrite (onder leiding [i], laag);
}
}
anders
{
for (int i = 0; ik < 8; i ++)
{
digitalWrite (onder leiding [i], laag);
}
}
}