Stap 81: Software: VU Meter modus
U zult opmerken dat er drie potentiometers binnen het versterker-circuit. Elk van hun doelen staan hieronder, evenals zoals in foto #1.
VR1
Deze potentiometer past de winst van de versterker. Als we een hogere weerstand over de potentiometer hebben, zal er minder winst in de versterker en vice versa. Als we teveel winst hebben we lawaai in het circuit zal halen, maar als we te weinig winst hebben we veel audio rond de tafel niet zal halen. Het duurt een beetje trial and error om erachter te komen welke weerstand werkt het beste, maar het moet niet te kritisch. We kunnen ook filteren uit sommige van de ruis in de software ook door de ontvangen waarde van ADC verrekening. Een 1kΩ weerstand werkt goed hier.
VR2
Dit zal de gevoeligheid van de microfoon aanpassen. Ik vond dat dit niet zo veel van een verschil maken, als je in een vaste weerstand in plaats van een potentiometer 10kΩ het zal prima werken.
VR3
Dit zal het aanpassen van de demping van het signaal. Als we het verzet echt laag ingesteld, krijgen we een heleboel zenuwachtig ADC waarden. Door dit in te stellen een hogere weerstand, zal het audiosignaal van DC geconverteerd voederen in de PIC veel stabieler worden. Ik vind dat het houden van dit 5kΩ om 10kΩ het beste werkt.
Operatie
Er zijn drie voornaamste VU meter functies die zijn opgenomen in de broncode en ze alle volgen dezelfde codering opmaak. We lezen in de audio ADC waarde van analoog kanaal AN2 met de Read_VU(void) functie, we de ADC-waarde bij een maximumwaarde van 31, waardoor ons 32 verschillende intensiteiten van de audio om te werken met cap (0 - 31). We kunnen dan het bier pong tafel te wijzigen van een functie op de tafel op elk van die 32 intensiteitsniveaus program. We kunnen ook verhogen of verlagen van de hoeveelheid intensiteitsniveaus van de ADC-waarde, als we moeten. Voordat we kalibreren van de VU-meter beginnen, nemen een multimeter en de potentiometers in de buurt van de waarden die ik hierboven vermeld. Als VR3 is ooit ingesteld op 0Ω, niet zal je zeker zien een audio signaal van de versterker zoals het zal worden kortsluiting op grond!
Kalibreren van de VU-Meter
Om de gewenste werking van de VU-meter, zal er aan filter van eventuele ongewenste ruis die zich op de ADC-regel. Of het nu volledig stil in de kamer of erg luid, zal er altijd een beetje spanning op het signaal lijn dat tot de ADC-module bijdraagt. We willen niet het bier pong tafel te interpreteren deze spanning als hoorbare ruis, zodat we de ADC-waarde moet compenseren.
Als u in het LED_Graphics.h-bestand waarin de functie prototypes voor de VU meter functies gaat, ziet u twee constanten VU_SENSITIVITY en VU_OFFSET genoemd. Volg de onderstaande stappen om het kalibreren van de VU-meter:
1) opstarten het MPLAB IDE and load up de broncode. Ga naar de hoofdfunctie en commentaar uit alle huidige code.
2) de VU_Meter_Bar()-functie in de hoofdlus (dit moet de enige code die wordt uitgevoerd in de hoofdlus) toevoegen. Bouwen van de code en programmeren van de PIC op de PCB meester.
3) zorg ervoor dat de kamer volledig stil is en kijk naar de bier pong tafel. Als een van de LED-rijen op is het omdat de VU-meter is het oppakken van lawaai van het circuit.
4) als alle rijen LED op terwijl de kamer volledig stil was, de VU_SENSITIVITY constante verhoogd met 1. Wederopbouw van de code en herprogrammeren van de PIC. Blijf dit doen totdat er minder dan 32 LED rijen zijn verlicht wanneer het is stil in de kamer.
5) nu dat er minder dan 32 rijen op de grid LED verlicht, krijgen een ruwe telling van hoeveel rijen worden nog steeds verlicht. Ga naar de constante VU_OFFSET en stelt u de waarde gelijk is aan het bedrag van de rijen die worden verlicht. Herbouwen en herprogrammeren van de code.
6) het nu moet worden gekalibreerd en als u wat muziek aanzetten of lawaai maken moet u de VU-meter zeer goed reageren op bas en lage frequenties. Hebt u nog een paar rijen die zijn verlichting up wanneer de kamer stil is, alleen de waarde van VU_OFFSET verhogen totdat het raster volledig gewist wordt wanneer het is stil en zult u goed om te gaan!
Als u geen antwoord van de VU-meter krijgen kan, zorg ervoor dat de weerstand in VR1 en VR2 VR3 op de PCB meester controleren en zet ze dicht bij de waarden die ik hierboven heb gepost. Als u opstart de VU_Meter_Bar() functie, maar geen LED-rijen worden verlicht wanneer het is stil, kunt houden u de waarden VU_SENSITIVITY en VU_OFFSET afneemt totdat u wat ruis ziet, dan één stap backtrack zolang er geen geen meer ruis. Dit zal ervoor zorgen dat de VU-meter de optimale gevoeligheid is. Hieronder staan de drie belangrijkste VU meter animaties.
VU_Meter_Bar(void)
Deze functie zal oplichten in elke rij van het raster (32 rijen) van de LED onafhankelijk volgens de geluidssterkte van de muziek. Als het geluidsniveau binnen de waarden 0 en 26 is, is de kleur van de RGB-peulen zullen groen. Als het geluidsniveau boven 26 en onder 31, zal de kleur van de RGB-peulen worden geel. Wanneer het audioniveau maxes op 31 de kleur zal van de RGB peulen rood en de LED-ringen op de tafel zal ook worden ingeschakeld.
VU_Meter_Circle_Out(void)
Deze functie zal teken een cirkel in het midden van het raster van LED en de straal van de cirkel wordt bepaald door het geluidsniveau van de ADC-module. De straal van de cirkel groeit naarmate de audio niveau groeit en wordt als volgt berekend (audioniveau / 2). Als het geluidsniveau binnen de waarden 0 en 26 is, is de kleur van de RGB-peulen zullen groen. Als de geluidssterkte boven 26 en onder 31, zal de kleur van de RGB-peulen worden geel. Wanneer het audioniveau maxes op 31 de kleur zal van de RGB peulen rood en de LED-ringen op de tafel zal ook worden ingeschakeld.
VU_Meter_Pod_Color(void)
Deze functie zal de kleur van de RGB-peulen in verband met de audio intensiteit aanpassen. Als er geen geluid is, zullen de RGB peulen zwak worden verlicht als blauw. Als de audio intensiteit toeneemt, het rode kanaal krijgt helderder en inhalen het schemerige blauwe kanaal op de peulen, af een rood/roze kleur te geven. Wanneer het audioniveau maxes op 31 de LED-ringen op de tafel wordt ook ingeschakeld.
Verwijder alle code uit de main() while lus, Typ in een van deze animaties en program om te testen het uit! Alle drie van deze functies kan worden gezien in de video hieronder.