Den LED-matris Panel, eller LMP, för Arduino mikrodator, fortsatte. (2 / 3 steg)
Steg 2: Programmet anteckningar
Det finns tre primära uppgifter ingår i detta program:
1) få mata inspänningen. De 16 MHz Arduino tar 100uS läsa indata, vilket innebär att även om det inte gör något annat, den maximala frekvensen kan man upptäcka tillförlitligt är 3 kHz, så använder vi något som kallas signal aliasing, börjar med att ta ett antal mätvärden så snabbt som möjligt (5 i vårt program) och summera dem i separata platser. Genom att ta medelvärden av olikt spänner av prover, vi kan approximera låga och spänna mellanfrekvenser, skillnaden antas vara hög läsning. Detta är ingalunda exakt vetenskap men här, vi bara behöver grov proportioner, så exakthet inte är kritisk.
2) vi kommer att göra statistiska analyser av ett stort antal siffror, så allt är reducerad till heltal spara lagringsutrymme och påskynda beräkningar. Det blir ingen konvertering från grundläggande 10-bitars input av Analog ingång.
3) översättning och display på LMP. Varje LED är påslagen för om tiden det tar för att läsa Analog PIN-koden, och varje "frame" (6 x 5 matrix) visas två gånger, så att vi kan visa 1.5dB steg. Detta tar ca 100mS. Tiden här är kritisk - något långsammare, ögat kommer att börja se flimmer, för snabbt, "mönster" ser dim och dåligt bildade.
AGC är incuded, så att programmet kan arbeta med ett brett utbud av volym och musik. Ett minimum av 150mV krävs, men det borde vara några problem med regelbundna lyssningsnivåer. Den "skala" variabel kan fällas för mer känslighet, men kommer att göra programmet mer mottaglig för elektrisk buller - i vilka casee, förbifartsleden ingången med en 0.1uF kondensator till marken...
För att maximera den "dynamiska" karaktären av musiken, de mest betydande 2bitar släpps, och de återstående 4 "sträcks" för att passa de 6 horisontell led.