Étape 3: L’Arduino esquisse - première partie
Donc quand on regarde sous l’angle tel qu’indiqué ci-dessus, vous avez sept colonnes verticales, chacune avec quatre niveaux de LED. Ainsi la force de chaque fréquence peut être décomposée en quatre niveaux et puis les LEDs appropriés mis en marche.
Après cela, pour chaque tranche, tous les voyants sont éteints et le processus se répète.
Par souci de simplicité, j’ai utilisé du cube bibliothèque Arduino pour activer les LEDs, qui rend également le croquis plus facile à comprendre. La première esquisse exemple utilise uniquement une seule couleur.
// ----------------------------------------------------------------------------------------------------------------------
Freetronics CUBE4 : analyseur de spectre MSGEQ7
MSGEQ7 stroboscope sur A4, réinitialisez le D5, signal en A0
#include « SPI.h »
#include « Cube.h »
Cube cube ;
res int = 5 ; réinitialiser les épingles sur D5
int gauche [7] ; stocker les valeurs de bande dans ces tableaux
bande d’int ;
void setup()
{
pinMode (res, sortie) ; remise à zéro
pinMode (A4, sortie) ; stroboscope
digitalWrite(res,LOW) ;
digitalWrite(A4,HIGH) ;
Cube.Begin (-1, 115200) ;
Serial.Begin(9600) ;
}
Sub readMSGEQ7()
Fonction de lire 7 égaliseurs
{
digitalWrite (res, HIGH) ;
digitalWrite (res, faible) ;
pour (bande = 0; bande < 7; bande ++)
{
digitalWrite(A4,LOW) ; stroboscope broche sur le bouclier - coups de pied le IC jusqu'à la bande suivante
delayMicroseconds(30) ; //
gauche [bande] = analogRead(0) ; stocker la lecture de la bande
digitalWrite(A4,HIGH) ;
}
}
void loop()
{
readMSGEQ7() ;
pour (bande = 0; bande < 7; bande ++)
{
div chaque bande de force en quatre couches, chaque bande puis une des diagonales impairs
une bande ~ 63 Hz
Si (gauche [0] > = 768) {}
Cube.Set (3,3,3, bleu) ;
}
d’autre
Si (gauche [0] > = 512) {}
Cube.Set (3,3,2, bleu) ;
}
d’autre
Si (gauche [0] > = 256) {}
Cube.Set (3.3.1, bleu) ;
}
d’autre
Si (gauche [0] > = 0) {}
Cube.Set (3,3,0, bleu) ;
}
deux bande ~ 160Hz
Si (gauche [1] > = 768)
{
Cube.Set (3,2,3, bleu) ;
Cube.Set (2,3,3, bleu) ;
}
d’autre
Si (gauche [1] > = 512)
{
Cube.Set (3,2,2, bleu) ;
Cube.Set (2.3.2, bleu) ;
}
d’autre
Si (gauche [1] > = 256)
{
Cube.Set (3,2,1, bleu) ;
Cube.Set (2,3,1, bleu) ;
}
d’autre
Si (gauche [1] > = 0)
{
Cube.Set (3,2,0, bleu) ;
Cube.Set (2,3,0, bleu) ;
}
trois bande ~ 400Hz
Si (left [2] > = 768)
{
Cube.Set (3,1,3, bleu) ;
Cube.Set (2,2,3, bleu) ;
Cube.Set (1,3,3, bleu) ;
}
d’autre
Si (left [2] > = 512)
{
Cube.Set (3,1,2, bleu) ;
Cube.Set (2,2,2, bleu) ;
Cube.Set (1,3,2, bleu) ;
}
d’autre
Si (left [2] > = 256)
{
Cube.Set (3,1,1, bleu) ;
Cube.Set (2.2.1, bleu) ;
Cube.Set (1,3,1, bleu) ;
}
d’autre
Si (left [2] > = 0)
{
Cube.Set (3,1,0, bleu) ;
Cube.Set (2,2,0, bleu) ;
Cube.Set (1,3,0, bleu) ;
}
bande de quatre ~ 1kHz
Si (gauche [3] > = 768)
{
Cube.Set (3,0,3, bleu) ;
Cube.Set (2,1,3, bleu) ;
Cube.Set (1,2,3, bleu) ;
Cube.Set (0,3,3, bleu) ;
}
d’autre
Si (gauche [3] > = 512)
{
Cube.Set (3,0,2, bleu) ;
Cube.Set (2,1,2, bleu) ;
Cube.Set (1,2,2, bleu) ;
Cube.Set (0,3,2, bleu) ;
}
d’autre
Si (gauche [3] > = 256)
{
Cube.Set (3,0,1, bleu) ;
Cube.Set (2,1,1, bleu) ;
Cube.Set (1,2,1, bleu) ;
Cube.Set (0,3,1, bleu) ;
}
d’autre
Si (gauche [3] > = 0)
{
Cube.Set (3,0,0, bleu) ;
Cube.Set (2,1,0, bleu) ;
Cube.Set (1,2,0, bleu) ;
Cube.Set (0,3,0, bleu) ;
}
bande de cinq ~ 2,5 kHz
Si (left [4] > = 768)
{
Cube.Set (2,0,3, bleu) ;
Cube.Set (1,1,3-Triéthoxyheptane, bleu) ;
Cube.Set (0,2,3, bleu) ;
}
d’autre
Si (left [4] > = 512)
{
Cube.Set (2,0,2, bleu) ;
Cube.Set (1,1,2, bleu) ;
Cube.Set (0,2,2, bleu) ;
}
d’autre
Si (left [4] > = 256)
{
Cube.Set (2,0,1, bleu) ;
Cube.Set (1,1,1, bleu) ;
Cube.Set (0,2,1, bleu) ;
}
d’autre
Si (left [4] > = 0)
{
Cube.Set (2,0,0, bleu) ;
Cube.Set (1,1,0, bleu) ;
Cube.Set (0,2,0, bleu) ;
}
bande de six ~ 6,25 kHz
Si (à gauche [5] > = 768)
{
Cube.Set (1,0,3, bleu) ;
Cube.Set (0,1,3, bleu) ;
}
d’autre
Si (à gauche [5] > = 512)
{
Cube.Set (1,0,2, bleu) ;
Cube.Set (0,1,2, bleu) ;
}
d’autre
Si (à gauche [5] > = 256)
{
Cube.Set (1.0.1, bleu) ;
Cube.Set (0,1,1, bleu) ;
}
d’autre
Si (à gauche [5] > = 0)
{
Cube.Set (1,0,0, bleu) ;
Cube.Set (0,1,0, bleu) ;
}
bande de sept ~ 16kHz
Si (a quitté [6] > = 768)
{
Cube.Set (0,0,3, bleu) ;
}
d’autre
Si (a quitté [6] > = 512)
{
Cube.Set (0,0,2, bleu) ;
}
d’autre
Si (a quitté [6] > = 256)
{
Cube.Set (0,0,1, bleu) ;
}
d’autre
Si (a quitté [6] > = 0)
{
Cube.Set (0,0,0, bleu) ;
}
}
maintenant effacer le CUBE, ou si c’est trop lent - répéter le processus, mais éteindre les LEDs
Cube.All(Black) ;
}
// ----------------------------------------------------------------------------------------------------------------------
et une vidéo de démonstration rapide :