Étape 3: Code
int analogPin = 0 ; se connecte à la sortie de la MSGEQ7, mesure la valeur de tension pour chaque bande de fréquences (0V-5V)
int strobePin = 2 ; se connecte à la borne de stroboscope de le MSGEQ7, contrôle le multiplexeur et donc bascule entre les bandes de fréquences
int resetPin = 3 ; se branche sur la broche de Reset de le MSGEQ7, contrôle le multiplexeur et il permet de redémarrer avec la bande de fréquence plus basse
int ledred = 9 ; se connecte à la porte de la MOSFET BUZ11 de la LED rouge (basse) et crée un signal PWM avec rapport cyclique variable qui dépend de la valeur de crête de basses fréquences pour contrôler la luminosité de la LED rouge
int ledgreen = 10 ; se connecte à la porte de la MOSFET BUZ11 de la LED verte (au milieu) et crée un signal PWM avec rapport cyclique variable qui dépend de la valeur de crête des fréquences moyennes de contrôler la luminosité de la LED verte
int ledblue = 11 ; se connecte à la porte de la MOSFET BUZ11 de la LED bleue (haut) et crée un signal PWM avec rapport cyclique variable qui dépend de la valeur de crête des hautes fréquences pour contrôler la luminosité de la LED bleue int spectrumValue [7] ; Variable de type entier pour stocker les valeurs de 10 bits des bandes de fréquences
filtre int = 80 ; Il y aura toujours quelques bruits qui recevra l’analogpin. Avec cette valeur de filtre, nous pouvons ignorer les pics très faibles de la production de la MSGEQ7. Hésitez pas à ajuster cette valeur à votre goût
void setup() {}
Serial.Begin(9600) ; nécessaire pour produire les valeurs des bandes de fréquences sur le serial monitor pinMode (analogPin, entrée) ; définit la broche analogique A0 comme intrant
pinMode (strobePin, sortie) ; définit la broche strobe 2 en sortie
pinMode (resetPin, sortie) ; définit la broche 3 de réinitialisation en sortie
pinMode (ledred, sortie) ; ledred broche 9 qualifie de sortie
pinMode (ledblue, sortie) ; ledblue broche 10 qualifie de sortie
pinMode (ledgreen, sortie) ; ledgreen broche 11 qualifie de sortie
digitalWrite (resetPin, basse) ;
digitalWrite (strobePin, HIGH) ; }
void loop() {}
digitalWrite (resetPin, HIGH) ;
digitalWrite (resetPin, basse) ; changer de haute à basse commence la sortie de la mutliplexer dès le début pour (int j’ai = 0; j’ai < 7; i ++) {//for boucle passe par ce cycle 7 fois pour obtenir les valeurs pour chaque fréquence bande digitalWrite (strobePin, LOW); //puts goupille de stroboscope faible à la sortie de la bande de fréquences
delayMicroseconds(30) ; Attendez que la valeur de sortie de MSGEQ7 peut être mesurée (voir diagramme de temps dans la feuille de données) spectrumValue[i]=analogRead(analogPin) ; mettre analogique DC valeur dans la variable si spectrumValue (spectrumValue [i]