Stap 3: De code...
De codering is vrij ongecompliceerd maar omvat wellicht wat tweaken om het te krijgen hoe het u bevalt. Ik leende deze code uit de dwang4 leerprogramma dus bedankt hem voor zijn werk op het. Andere kleur orgel instructables zal hebben soortgelijke code die u op uw eigen parseren kunt. De filterValue integer en de vertragingswaarde zijn de twee die de grootste impact op de functionaliteit van de lichten hebben zal. filterValue, uitfilteren met sommige van de lagere frequentie-lezingen. Vaak tijden, zal het MSGEQ7 signaal hebben sommige kleine hoeveelheid ruis. Afstellen van deze waarde laat uw verlichting om te reageren beter met de muziek in plaats van alle van de plaats. Ik ging met een echt hoge waarde voor mij (170) maar je moet zeker spelen mee om te zien wat bij u past. De vertragingswaarde is ook iets die u experimenteren moet met totdat u vondst men welk reageert hoe u wilt voor uw project. Hier is een link naar een pastebin met de code die ook hieronder gepost is:int analogPin = 0;
int strobePin = 2;
int resetPin = 4;
int spectrumValue [7];
int filterValue = 170;
int ledPinR = 9;
int ledPinG = 10;
int ledPinB = 11;
VOID Setup
{
Serial.begin(9600);
pinMode (analogPin, INPUT);
pinMode (strobePin, OUTPUT);
pinMode (de resetPin, OUTPUT);
analogReference(DEFAULT);
digitalWrite (resetPin, laag);
digitalWrite (strobePin, hoge);
}
void loop
{
digitalWrite (resetPin, hoge);
digitalWrite (resetPin, laag);
for (int i = 0; ik < 7; i ++)
{
digitalWrite (strobePin, laag);
delayMicroseconds(45);
spectrumValue [i] = analogRead(analogPin);
spectrumValue [i] = beperken (spectrumValue [i], filterValue, 1023);
spectrumValue [i] = kaart (spectrumValue [i], filterValue, 1023, 0, 255);
Serial.Print(spectrumValue[i]);
Serial.Print("");
digitalWrite (strobePin, hoge);
}
Serial.println();
analogWrite (ledPinR, spectrumValue[1]);
analogWrite (ledPinG, spectrumValue[4]);
analogWrite (ledPinB, spectrumValue[6]);
}