Stap 4: De Arduino schets - deel twee
We hebben verschillende kleuren gebruikt voor een tweede voorbeeld:// -----------------------------------------------------------------------------------------------------------
Freetronics CUBE4: en MSGEQ7 spectrum analyser
MSGEQ7 stroboscoop op A4, reset op D5, signaal in A0
nu in kleur!
#include "SPI.h"
#include "Cube.h"
Kubus kubus;
int res = 5; Reset pinnen op D5
int links [7]; band waarden opslaan in deze arrays
int de band;
int extra = 0;
VOID Setup
{
pinMode (res, OUTPUT); Reset
pinMode (A4, uitvoer); Stroboscoop
digitalWrite(res,LOW);
digitalWrite(A4,HIGH);
Cube.begin (-1, 115200);
Serial.begin(9600);
}
VOID readMSGEQ7()
Functie te lezen 7 band equalizers
{
digitalWrite (res, hoge);
digitalWrite (res, laag);
voor (band = 0; band < 7; band ++)
{
digitalWrite(A4,LOW); Strobe pin op het schild - kicks de IC tot de volgende band
delayMicroseconds(30); //
links [band] = analogRead(0) + extra; opslaan van band-lezing
digitalWrite(A4,HIGH);
}
}
void loop
{
readMSGEQ7();
voor (band = 0; band < 7; band ++)
{
div elke band sterkte in vier lagen, elke band vervolgens één van de oneven diagonalen
een band ~ 63 Hz
Als (links [0] > = 768) {}
Cube.set (3,3,3, RED);
}
anders
Als (links [0] > = 512) {}
Cube.set (3,3,2, geel);
}
anders
Als (links [0] > = 256) {}
Cube.set (3,3,1, geel);
}
anders
Als (links [0] > = 0) {}
Cube.set (3,3,0, blauw);
}
band twee ~ 160 Hz
Als (links [1] > = 768)
{
Cube.set (3,2,3, RED);
Cube.set (2,3,3, RED);
}
anders
Als (links [1] > = 512)
{
Cube.set (3,2,2, geel);
Cube.set (2,3,2, geel);
}
anders
Als (links [1] > = 256)
{
Cube.set (3,2,1, geel);
Cube.set (2,3,1, geel);
}
anders
Als (links [1] > = 0)
{
Cube.set (3,2,0, blauw);
Cube.set (2,3,0, blauw);
}
band drie ~ 400 Hz
Als (left [2] > = 768)
{
Cube.set (3,1,3, RED);
Cube.set (2,2,3, RED);
Cube.set (1,3,3, RED);
}
anders
Als (left [2] > = 512)
{
Cube.set (3,1,2, geel);
Cube.set (2,2,2, geel);
Cube.set (1,3,2, geel);
}
anders
Als (left [2] > = 256)
{
Cube.set (3,1,1, geel);
Cube.set (2,2,1, geel);
Cube.set (1,3,1, geel);
}
anders
Als (left [2] > = 0)
{
Cube.set (3,1,0, blauw);
Cube.set (2,2,0, blauw);
Cube.set (1,3,0, blauw);
}
band vier ~ 1 kHz
Als (links [3] > = 768)
{
Cube.set (3,0,3, RED);
Cube.set (2,1,3, RED);
Cube.set (1,2,3, RED);
Cube.set (0,3,3, RED);
}
anders
Als (links [3] > = 512)
{
Cube.set (3,0,2, geel);
Cube.set (2,1,2, geel);
Cube.set (1,2,2, geel);
Cube.set (0,3,2, geel);
}
anders
Als (links [3] > = 256)
{
Cube.set (3,0,1, geel);
Cube.set (2,1,1, geel);
Cube.set (1,2,1, geel);
Cube.set (0,3,1, geel);
}
anders
Als (links [3] > = 0)
{
Cube.set (3,0,0, blauw);
Cube.set (2,1,0, blauw);
Cube.set (1,2,0, blauw);
Cube.set (0,3,0, blauw);
}
band vijf ~ 2,5 kHz
Als (left [4] > = 768)
{
Cube.set (2,0,3, RED);
Cube.set (1,1,3, RED);
Cube.set (0,2,3, RED);
}
anders
Als (left [4] > = 512)
{
Cube.set (2,0,2, geel);
Cube.set (1,1,2, geel);
Cube.set (0,2,2, geel);
}
anders
Als (left [4] > = 256)
{
Cube.set (2,0,1, geel);
Cube.set (1,1,1, geel);
Cube.set (0,2,1, geel);
}
anders
Als (left [4] > = 0)
{
Cube.set (2,0,0, blauw);
Cube.set (1,1,0, blauw);
Cube.set (0,2,0, blauw);
}
band zes ~ 6,25 kHz
Als (links [5] > = 768)
{
Cube.set (1,0,3, RED);
Cube.set (0,1,3, RED);
}
anders
Als (links [5] > = 512)
{
Cube.set (1,0,2, geel);
Cube.set (0,1,2, geel);
}
anders
Als (links [5] > = 256)
{
Cube.set (1,0,1, geel);
Cube.set (0,1,1, geel);
}
anders
Als (links [5] > = 0)
{
Cube.set (1,0,0, blauw);
Cube.set (0,1,0, blauw);
}
band zeven ~ 16 kHz
Als (links [6] > = 768)
{
Cube.set (0,0,3, RED);
}
anders
Als (links [6] > = 512)
{
Cube.set (0,0,2, geel);
}
anders
Als (links [6] > = 256)
{
Cube.set (0,0,1, geel);
}
anders
Als (links [6] > = 0)
{
Cube.set (0,0,0, blauw);
}
}
nu duidelijk van de kubus, of als dat te traag - Herhaal dit proces maar LEDs uitschakelen
Cube.all(Black);
}
// -----------------------------------------------------------------------------------------------------------
... en de tweede video demonstratie:
Een klein beetje ruis komt door in de spectrum analyzer, meest waarschijnlijke wijten aan het feit dat het hele ding niet-afgeschermde is. De vorige prototype gebruikt de Arduino uithangbord vanuit de tutorial die niet beschikken over dit probleem, dus als je graag misschien uw eigen aangepaste PCB voor dit project.
Conclusie
Nou dat iets anders was en ik hoop dat u genoten en vind gebruik voor het circuit. Dat MSGEQ7 is een handige IC en met wat fantasie kunt u een verscheidenheid van muzikaal beïnvloed displays. En terwijl je hier-bent u geïnteresseerd in het leren meer over Arduino? Bestel dan mijn nieuwe boek "Arduino Workshop" van No Starch Press.