Étape 4: L’Arduino esquisse - deuxième partie
Pour un deuxième exemple, nous avons utilisé des couleurs différentes :// -----------------------------------------------------------------------------------------------------------
Freetronics CUBE4 : analyseur de spectre MSGEQ7
MSGEQ7 stroboscope sur A4, réinitialisez le D5, signal en A0
maintenant en couleur !
#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 ;
autre int = 0 ;
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) + supplémentaires ; 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, rouge) ;
}
d’autre
Si (gauche [0] > = 512) {}
Cube.Set (3,3,2, jaune) ;
}
d’autre
Si (gauche [0] > = 256) {}
Cube.Set (3.3.1, jaune) ;
}
d’autre
Si (gauche [0] > = 0) {}
Cube.Set (3,3,0, bleu) ;
}
deux bande ~ 160Hz
Si (gauche [1] > = 768)
{
Cube.Set (3,2,3, rouge) ;
Cube.Set (2,3,3, rouge) ;
}
d’autre
Si (gauche [1] > = 512)
{
Cube.Set (3,2,2, jaune) ;
Cube.Set (2.3.2, jaune) ;
}
d’autre
Si (gauche [1] > = 256)
{
Cube.Set (3,2,1, jaune) ;
Cube.Set (2,3,1, jaune) ;
}
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, rouge) ;
Cube.Set (2,2,3, rouge) ;
Cube.Set (1,3,3, rouge) ;
}
d’autre
Si (left [2] > = 512)
{
Cube.Set (3,1,2, jaune) ;
Cube.Set (2,2,2, jaune) ;
Cube.Set (1,3,2, jaune) ;
}
d’autre
Si (left [2] > = 256)
{
Cube.Set (3,1,1, jaune) ;
Cube.Set (2.2.1, jaune) ;
Cube.Set (1,3,1, jaune) ;
}
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, rouge) ;
Cube.Set (2,1,3, rouge) ;
Cube.Set (1,2,3, rouge) ;
Cube.Set (0,3,3, rouge) ;
}
d’autre
Si (gauche [3] > = 512)
{
Cube.Set (3,0,2, jaune) ;
Cube.Set (2,1,2, jaune) ;
Cube.Set (1,2,2, jaune) ;
Cube.Set (0,3,2, jaune) ;
}
d’autre
Si (gauche [3] > = 256)
{
Cube.Set (3,0,1, jaune) ;
Cube.Set (2,1,1, jaune) ;
Cube.Set (1,2,1, jaune) ;
Cube.Set (0,3,1, jaune) ;
}
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, rouge) ;
Cube.Set (1,1,3-Triéthoxyheptane, rouge) ;
Cube.Set (0,2,3, rouge) ;
}
d’autre
Si (left [4] > = 512)
{
Cube.Set (2,0,2, jaune) ;
Cube.Set (1,1,2, jaune) ;
Cube.Set (0,2,2, jaune) ;
}
d’autre
Si (left [4] > = 256)
{
Cube.Set (2,0,1, jaune) ;
Cube.Set (1,1,1, jaune) ;
Cube.Set (0,2,1, jaune) ;
}
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, rouge) ;
Cube.Set (0,1,3, rouge) ;
}
d’autre
Si (à gauche [5] > = 512)
{
Cube.Set (1,0,2, jaune) ;
Cube.Set (0,1,2, jaune) ;
}
d’autre
Si (à gauche [5] > = 256)
{
Cube.Set (1.0.1, jaune) ;
Cube.Set (0,1,1, jaune) ;
}
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, rouge) ;
}
d’autre
Si (a quitté [6] > = 512)
{
Cube.Set (0,0,2, jaune) ;
}
d’autre
Si (a quitté [6] > = 256)
{
Cube.Set (0,0,1, jaune) ;
}
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 la deuxième vidéo de démonstration :
Un peu de bruit provient dans l’analyseur de spectre, probablement dû au fait que la chose entière est non blindée. Le prototype précédent utilisé le bouclier d’Arduino du tutorial qui n’ai ce problème, alors si vous êtes désireux de peut-être faire votre propre PCB personnalisé pour ce projet.
Conclusion
Bien que c’était quelque chose de différent et j’espère que ça vous a plu et peut trouver utilisation du circuit. Cette MSGEQ7 est un IC maniable et avec peu d’imagination, vous pouvez créer une variété d’écrans influencés musicalement. Et Pendant que vous y êtes ici – êtes-vous intéressé à apprendre plus sur l’Arduino ? Alors commander mon nouveau livre "Atelier Arduino" de No Starch Press.