Étape 4: Le Code
Voici le code comme dans l’Arduino 1.0.1
//
Battre Sync
Un appareil de visualiztion de musique.
Créé par
Carl Smith
penguinmagic
//
#include < fix_fft.h >
int a conduit [] = {5,6,7,8,9,10,11,12} ;
int x = 0 ;
im Char [128], données [128] ;
char data_avgs [14] ;
int i = 0, val ;
#define AUDIOPIN 3
void setup()
{
pour (int i = 0; i < 8; i ++)
{
pinMode (conduit [i], sortie) ;
}
Serial.Begin(9600) ;
}
void loop()
{
pour (i = 0; i < 128; i ++) {}
Val = analogRead(AUDIOPIN) ;
données [i] = val ;
im [i] = 0 ;
};
fix_fft(Data,im,7,0) ;
pour (i = 0; i < 64; i ++) {}
données [i] = sqrt (données [i] * données [i] + im [i] * im[i]) ; Cet exemple obtient la valeur absolue des valeurs dans le
tableau, nous traitons uniquement avec des nombres positifs
};
ensemble moyens barres
pour (i = 0; i < 14; i ++) {}
data_avgs [i] = données [J’ai * 4] + données [J’ai * 4 + 1] + données [J’ai * 4 + 2] + données [J’ai * 4 + 3] ; moyenne de l’ensemble
data_avgs [i] = carte (data_avgs [i], 0, 30, 0, 9) ; valeurs de remappage des couleurs pour LoL
}
int valeur = data_avgs [0]; //0 pour basse
ledArray(value) ;
}
Sub ledArray(int input)
{
//
Si (entrée > 8)
{
pour (int i = 0; i < 8; i ++)
{
digitalWrite (conduit [i], haut) ;
}
}
ElseIf (entrée > 7)
{
pour (int i = 0; i < 7; i ++)
{
digitalWrite (conduit [i], haut) ;
}
pour (int i = 7; i < 8; i ++)
{
digitalWrite (conduit [i], faible) ;
}
}
ElseIf (entrée > 6)
{
pour (int i = 0; i < 6; i ++)
{
digitalWrite (conduit [i], haut) ;
}
pour (int i = 6; i < 8; i ++)
{
digitalWrite (conduit [i], faible) ;
}
}
ElseIf (entrée > 5)
{
pour (int i = 0; i < 5; i ++)
{
digitalWrite (conduit [i], haut) ;
}
pour (int i = 5; i < 8; i ++)
{
digitalWrite (conduit [i], faible) ;
}
}
ElseIf (entrée > 4)
{
pour (int i = 0; i < 4; i ++)
{
digitalWrite (conduit [i], haut) ;
}
pour (int i = 4; i < 8; i ++)
{
digitalWrite (conduit [i], faible) ;
}
}
ElseIf (entrée > 3)
{
pour (int i = 0; i < 3; i ++)
{
digitalWrite (conduit [i], haut) ;
}
pour (int i = 3; i < 8; i ++)
{
digitalWrite (conduit [i], faible) ;
}
}
ElseIf (entrée > 2)
{
pour (int i = 0; i < 2; i ++)
{
digitalWrite (conduit [i], haut) ;
}
pour (int i = 2; i < 8; i ++)
{
digitalWrite (conduit [i], faible) ;
}
}
ElseIf (entrée > 1)
{
pour (int i = 0; i < 1; i ++)
{
digitalWrite (conduit [i], haut) ;
}
pour (int i = 1; i < 8; i ++)
{
digitalWrite (conduit [i], faible) ;
}
}
d’autre
{
pour (int i = 0; i < 8; i ++)
{
digitalWrite (conduit [i], faible) ;
}
}
}