Hur man skapar en öl flaska LED VU-Meter (12 / 17 steg)
Steg 12: Matchande indatavärden med ljudnivåer
LM3915 Utgångar = > PIC18F4550 ingångar
lite # -> 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Level = 0: 0: 0: 0: 0: 0: LED7:LED8:LED9:LED10:LED1:LED2:LED3:LED4:LED5:LED6
Nu vet jag att vi kunde arrangera bitarna för att göra det skulle lättare att arbeta med, men det innebära mer instruktioner för PIC varje gång den läser de ingångar, vilket innebär mer tid slösas bort. Så ska vi bara gå vidare och räkna ut värdet av "nivå" på varje ljud nivå och lämna bitarna i den ordning som de är i just nu. Kom ihåg att LM3915 utgångarna är aktiv låg, menande att när den upptäcker ljud vid en viss nivå det kommer att dra dessa resultat låg.
Ljud nivå 0 (inget ljud)
Level = 0000001111111111
= 0x3FF
Ljud nivå 1
Level = 0000001111011111
= 0x3DF
Ljud nivå 2
Level = 0000001111001111
= 0x3CF
Ljud nivå 3
Level = 0000001111000111
= 0x3C7
Ljud nivå 4
Level = 0000001111000011
= 0x3C3
Ljud nivå 5
Level = 0000001111000001
= 0x3C1
Ljud nivå 6
Level = 0000001111000000
= 0x3C0
Ljud nivå 7
Level = 0000000111000000
= 0x1C0
Ljud nivå 8
Level = 0000000011000000
= 0x0C0
Ljud nivå 9
Level = 0000000001000000
= 0x040
Ljud nivå 10 (Max Sound)
Level = 0000000000000000
= 0x000
LM3915 är hårdkodade i bar-läge, så dessa 10 värden ändras aldrig. När ljudnivån är lika med utgång LED1 variabeln "nivå" att alltid vara lika med 0x3DF, när ljudnivån är lika med utgång LED2 "nivå" att alltid vara lika med 0x3CF, etc. Så nu när PIC18F4550 kan berätta vad ljudnivån är från LM3915 IC, kan vi göra alla möjliga olika former för volymmätaren (VU). Det är också mycket lätt att koden som du ser i nästa steg.