Stap 3: Code
int analogPin = 0; een verbinding met de Output van de MSGEQ7, meet de waarde van de spanning voor elke frequentieband (0V-5V)
int strobePin = 2; verbonden met de Strobe-Pin van de MSGEQ7, regelt de Multiplexer en dus wordt geschakeld tussen de beschikbaar te stellen frequentiebanden
int resetPin = 3; verbonden met de Reset Pin van de MSGEQ7, regelt de Multiplexer en laat het opnieuw met de laagste frequentieband
int ledred = 9; verbonden met de poort van de MOSFET BUZ11 van de rode LED (bas) en creëert een PWM-signaal met variabele taakcyclus die hangt af van de piekwaarde van de lage frequenties naar de controle van de helderheid van de rode LED
int ledgreen = 10; verbonden met de poort van de MOSFET BUZ11 van de groene LED (midden) en maakt een PWM-signaal met variabele taakcyclus die hangt af van de piekwaarde van de middelste frequenties te regelen van de helderheid van de groene LED
int ledblue = 11; verbonden met de poort van de MOSFET BUZ11 van de blauwe LED (hoog) en maakt een PWM-signaal met variabele taakcyclus die hangt af van de piekwaarde van de hoge frequenties naar de controle van de helderheid van de blauwe LED int spectrumValue [7]; Integer-variabele voor het opslaan van de waarden van de 10 bit van de beschikbaar te stellen frequentiebanden
int filter = 80; Er zal altijd enige geluiden die de analogpin ontvangt. Met deze filterwaarde kunnen we voorbijgaan aan de zeer lage pieken van de output van de MSGEQ7. Viel vrij om deze waarde naar wens aanpassen
VOID Setup {}
Serial.begin(9600); nodig voor de uitvoer van de waarden van de bands van de frequenties op de seriële monitor pinMode (analogPin, INPUT); analoge pin A0 definieert als een Input
pinMode (strobePin, OUTPUT); strobe pin 2 definieert als Output
pinMode (de resetPin, OUTPUT); resetpin 3 definieert als Output
pinMode (ledred, OUTPUT); ledred pin 9 definieert als Output
pinMode (ledblue, OUTPUT); ledblue pin 10 definieert als Output
pinMode (ledgreen, OUTPUT); ledgreen pin 11 definieert als Output
digitalWrite (resetPin, laag);
digitalWrite (strobePin, hoge); }
void loop {}
digitalWrite (resetPin, hoge);
digitalWrite (resetPin, laag); veranderen van hoog naar laag begint de output van de mutliplexer vanaf het begin voor (int ik = 0; ik < 7; i ++) {//for lus doorloopt deze cyclus 7 maal om de waarden voor elke frequentie band digitalWrite (strobePin, laag); //puts strobe pin laag voor de uitvoer van de frequentieband
delayMicroseconds(30); wacht tot de waarde van de output van MSGEQ7 kan worden gemeten (Zie timing diagram in het gegevensblad) spectrumValue[i]=analogRead(analogPin); zet analoge DC waarde in de variabele als spectrumValue (spectrumValue [i]