Étape 3: Le code...
Le codage est assez simple mais peut nécessiter quelques ajustements pour l’obtenir si vous le souhaitez. J’ai emprunté ce code du tutoriel de dwang4 donc Merci à lui pour son travail à ce sujet. Autres couleurs orgue instructables auront un code similaire que vous pouvez analyser vous-même. L’entier filterValue et la valeur de délai sont les deux qui auront le plus d’impact sur la fonctionnalité des lumières. filterValue filtrera certaines des lectures de fréquence inférieures. Souvent, le signal de MSGEQ7 aura une petite quantité de bruit. Peaufiner cette valeur permet à vos lumières pour mieux réagir à la musique au lieu d’être tous de la place. Je suis allé avec une très haute valeur pour le mien (170), mais vous devriez certainement jouer avec elle pour voir ce qui vous convient. La valeur de délai est également quelque chose que vous devriez expérimenter jusqu'à ce que vous trouviez celui qui réagit comment vous voulez pour votre projet. Voici un lien pour un pastebin avec le code qui est affiché ci-dessous :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, entrée) ;
pinMode (strobePin, sortie) ;
pinMode (resetPin, sortie) ;
analogReference(DEFAULT) ;
digitalWrite (resetPin, basse) ;
digitalWrite (strobePin, HIGH) ;
}
void loop()
{
digitalWrite (resetPin, HIGH) ;
digitalWrite (resetPin, basse) ;
pour (int i = 0; i < 7; i ++)
{
digitalWrite (strobePin, basse) ;
delayMicroseconds(45) ;
spectrumValue [i] = analogRead(analogPin) ;
spectrumValue [i] = contraindre (spectrumValue [i], filterValue, 1023) ;
spectrumValue [i] = carte (spectrumValue [i], filterValue, 1023, 0, 255) ;
Serial.Print(spectrumValue[i]) ;
Serial.Print("") ;
digitalWrite (strobePin, HIGH) ;
}
Serial.println() ;
analogWrite (ledPinR, spectrumValue[1]) ;
analogWrite (ledPinG, spectrumValue[4]) ;
analogWrite (ledPinB, spectrumValue[6]) ;
}