Interaktiva LED öl Pong tabell (81 / 87 steg)
Steg 81: Programvara: VU mätare läge
Du kommer att märka att det finns tre potentiometrar inom kretsen som förstärkare. Vart och ett av sina syften listas nedan, såväl som i Foto #1.
VR1
Denna potentiometer kommer att justera vinst på förstärkaren. Om vi har ett högre motstånd över potentiometern, får vi mindre vinst i förstärkaren och vice versa. Om vi har för mycket vinst vi kommer att plocka upp buller i krets men om vi har för lite vinst vi brukar plocka upp mycket ljud runt bordet. Det kan ta en liten bit av försök och misstag att räkna ut vad motstånd fungerar bäst men det bör inte vara alltför kritisk. Vi kan också att filtrera ut vissa av buller i programvaran för genom avräkning mottagna ADC värdet. Ett 1kΩ motstånd fungerar bra här.
VR2
Det här justerar känsligheten på mikrofonen. Fann jag att detta inte gör så mycket skillnad, om du lägger i en 10kΩ fast motstånd i stället för en potentiometer det kommer fungera bra.
VR3
Här justeras dämpning av signalen. Om vi motståndet riktigt låg, får vi en hel del nervositet ADC värden. Genom att ange detta till ett högre motstånd, blir DC konverteras ljudsignalen matas in i bilden mycket stabilare. Jag tycker att hålla denna från 5kΩ till 10kΩ fungerar bäst.
Operation
Det finns tre huvudsakliga VU meter funktioner ingår i källkoden och de alla följer samma kodning format. Vi läser i audio ADC värdet från analog kanal AN2 med funktionen Read_VU(void) vi cap ADC värdet vid ett maximalt värde av 31 som ger oss 32 olika ljud intensitet att arbeta med (0 - 31). Vi kan sedan programmet i öl pong tabell ändra någon funktion på bordet vid någon av de 32 intensitetsnivåerna. Vi kan också öka eller minska mängden intensitetsnivåer från ADC värde om vi behöver. Innan vi börjar kalibrera volymmätaren (VU), ta en multimeter och ange potentiometrar nära de värden som jag sagt ovan. Om VR3 ställs någonsin på 0Ω är kommer inte du säker att se en audio signal från förstärkaren eftersom det kommer att kortslutning till jord!
Kalibrera volymmätaren (VU)
För att få önskad åtgärd från VU-meter, får vi filtrera bort eventuella oönskade buller som ligger på ADC-linjen. Om det är helt tyst i rummet eller extremt högt, blir det alltid lite av spänningen på raden signal som matas in modulen ADC. Vi vill inte tabellen öl pong att tolka denna spänning som hörbara brus så vi måste kompensera de ADC.
Om du går in i filen LED_Graphics.h som innehåller funktionen prototyper för VU meter funktioner, kommer du se två konstanter kallas VU_SENSITIVITY och VU_OFFSET. Följ stegen nedan för att kalibrera volymmätaren (VU):
1) start upp MPLAB IDE och ladda upp källkoden. Gå in i den huvudsakliga funktionen och kommentera ut all nuvarande kod.
2) lägga till funktionen VU_Meter_Bar() till de viktigaste loop (detta bör vara den enda kod som körs i huvudloop). Bygga koden och programmera PIC på Master PCB.
3) se till att rummet är helt tyst och titta på tabellen öl pong. Om någon av raderna LED är på är det eftersom volymmätaren (VU) är att plocka upp ljud från kretsen.
4) om alla LED rader var på medan rummet var helt tyst, öka den VU_SENSITIVITY konstanten med 1. Bygga upp koden och programmera PIC. Fortsätt med detta tills det finns mindre än 32 LED rader lyser upp när det är tyst i rummet.
5) nu när det finns mindre än 32 rader lyste upp på nätet för LED, få en grov räkna hur många rader fortfarande lyser. Gå till VU_OFFSET konstant och ange dess värde lika med summan av raderna som lyser upp. Bygga och programmera koden.
6) det bör kalibreras nu och om du sätter lite musik på eller göra buller bör du se VU-meter svarar mycket bra på bas och låga frekvenser. Om du fortfarande har några rader som tänds när rummet är tyst, bara öka värdet på VU_OFFSET tills rutnätet töms helt när det är tyst och blir du bra att gå!
Om du inte kan få något svar från VU-meter, se till att kontrollera motståndet över VR1, VR2 och VR3 på Master PCB och ställa dem nära de värden som jag skrivit ovan. Om du startar upp funktionen VU_Meter_Bar() och några rader LED lyser när det är tyst, kan du hålla minskar värdet VU_SENSITIVITY och VU_OFFSET tills du ser några buller, sedan backa ett steg tills det finns ingen mer buller. Detta kommer att säkerställa att volymmätaren (VU) är på dess optimal känslighet. Nedan listas de tre viktigaste VU mätare animationerna.
VU_Meter_Bar(void)
Denna funktion kommer att lysa upp varje rad i rutnätet LED (32 rader) självständigt enligt ljudintensitet av musiken. Om ljudnivån är inom värden 0 och 26, blir färg på RGB baljorna grön. Om ljudnivån är 26 och under 31, blir färgen på RGB baljorna gula. När ljudnivån som maxar vid 31 färgen RGB skida blir röd och LED ringen på bordet kommer också vara påslagen.
VU_Meter_Circle_Out(void)
Denna funktion kommer att rita en cirkel mitt i rutnätet LED och radien av cirkeln bestäms av ljudnivån från ADC-modulen. Radien av cirkeln expanderar som ljud nivå ökar och beräknas som (ljudnivå / 2). Om ljudnivån är inom värden 0 och 26, blir färg på RGB baljorna grön. Om ljudintensitet är 26 och under 31, blir färgen på RGB baljorna gula. När ljudnivån som maxar vid 31 färgen RGB skida blir röd och LED ringen på bordet kommer också vara påslagen.
VU_Meter_Pod_Color(void)
Denna funktion kommer att justera färgen på RGB skida i förhållande till audio intensiteten. Om det finns inget ljud, kommer RGB baljorna svagt upplysta i blått. Eftersom ljud intensiteten ökar, kommer att den röda kanalen få ljusare och köra om svagt upplysta blå kanal på skida, avger en röd/rosa färg. När ljudnivån som maxar vid 31 LED ringen på bordet kommer också vara påslagen.
Ta bort all kod från Main () medan loop, skriver i en av dessa animationer och programmera den att testa det! Alla tre av dessa funktioner kan ses i videon nedan.