Tänkte slänga upp min första fråga här.... har funderat lite på att bygga en VU-mätare som ska displaya 2 kanalers VU på en 2*20 LCD... detta med en ATmega88-processor...
Min fråga är nu, eftersom mina kunskaper om analog elektronik är lite sisådär: vad behöver jag göra med en signal från t.ex. en line-out från en CD-spelare... det är ju 2 kablar, och jag antar att det är 2 poler på varje, en jord?
Ska jag koppla dessa 2 på varsin pinne på uPCn o ADC:a? Vad måste jag ha imellan? Dioder? Motstånd? OP-ampar? Eller kanske en LM 3916?
Hoppas ni har lite svar åt mig, jag känner mig lite lost på just den här delen av bygget...
Jag ska använda en uPC och en display, inte lysdioder... men hursomhelst, det där är ju iaf med en 3915, men om jag skulle koppla den till uPCn så skulle den ju ta upp 10 pinnar, om man inte på ngt sätt kan koppla dom 10 utgångarna till en spänningsdelare och sen köra ADC på den för att kolla vilka utgångar som är aktiverade, eller nåt sånt...
Enklast är nog att först (innan MPU'n) filtrera ner signalen så att
den passar den "känsla" du vill ha i VU metrarna. Det förenklar
avläsningen med ADCn. Sedan kan du lägga till "eftersläp" o.s.v
i mjukvaran.
Ska det alltså vara två skalor med 20 punkter (hela tecken) på varje ?
10 bitars upplösning, som du i bästa fall får ut av M88, räcker inte så långt som VU-meter. Du behöver något av följande:
A: Låga krav på upplösningen
B: En extern ADC med bättre upplösning (16 bit)
C: Externt annat stödchip (ex. 3915 eller logaritmerade förstärkarkoppling)
D: Inte använda AVR alls om du inte har andra krav som inte framgått ännu
Okej, låga krav på upplösning? Räcker inte 1024? Jag läste att en VU oftast går från -20 till 3 dB. -20 dB = 0.1, 3dB=1.41. Med en ref på 1.5 volt, så ger skillnaden mellan -20 och -19 dB lite drygt 8 steg på ADCn, vilket borde vara mer än tillräckligt?
Har jag blandat äpplen och päron i mina beräkningar?
med 10 bitar så får man i allafall 60 dB dynamik - även om stegen är jäkligt stora i början vid lågnivå (6 dB per steg)
Analoga VU-metrar brukar ha omfång mellan -20 - +6 db eller tom. +9 dB, så för 30 dB dynamik så räcker 10 bit ADC mer än väl.
på analoga bandspelare så kunde man överstyra ganska hårt innan det börja låta hörbart illa, medans digitala system klipper vid just exakt 0 dB och låter illa omedelbart minsta lilla över detta. Inspelningsnivån bör inte ligga högre än max -10 dB i topparna för att ha lite reservutrymme kvar för oväntade ännu högre nivåer... detta för att digitala system låter illa när det väl börja klippa minsta lilla...
Bra, då är vi på punkt A, lågt krav på upplösningen, d.v.s. under hela ljuddynamiken om >90 dB
Då går det väl bra att använda den integrerade AD-omvandlaren i AVRen. Nu behöver du bara likrikta ljudsignalen utan förluster för att kunna mäta den, lämpligtvis över en liten kapacitans som sätter den snabbaste tidskonstanten för dina VU-staplar.
Ska man likrikta bra så får man göra det med operationsförstärkarkoppling. Kan man inte lösa detta med mikrokontrollern istället och där även integrera så slipper man kondensatorn också?
tja - du kan alltid biasera så att vilospänningen ligger på 2.5 Volt mha OP-amp och AC-koppling på ingången och sedan på modulationen letar efter min och maxvärde för topparna på inkommade signal.
Att få till ett riktigt 'VU-beteende' med intergrering och 'rätt' släp är dock något helt annat i beräkningsväg än just ovanstående - allt beror på hur fort du samplar och beräkningskapacitet - skall du göra RMS-beräkning och eller FFT och annat i realtid så krävs det lite stake i MCU:n
Hur ska man göra för att tända lysdioderna, är man tvungen att köra villkorliga hopp över vissa intervaller (samplings datan) eller finns det smartare sätt att lösa det på?
Det är väl upp till den som programmerar eller hur?
Eller menar du: "hur får man lättast ett värde att motsvara ett visst antal utgångar i läge '1'?"
Om vi utgår ifrån att du har kanske värden mellan 0 och 9 kan du helt enkelt indexera i en (eller fler) tabell(er). Dessa tabeller har sedan det önskade bitmönster.
Tänkte mest om man har många lysdioder så kan det bli många villkorligaprogramhopp vid vissa tillfälle. T.ex värdena 0 till 4 av samplingsdatan motsvarar första lysdioden, 5 till 9 andra lysdioden...
Ignorera inlägget om ni tycker det blev för mycket OT nu!
Men lite snabbt: om det ska vara linjär skala bör du först dela inkommande värde med 5 (enl. vad du anger här) varefter du kan slå upp i tabellen. Frågan är ju hur bråttom du har, alltså hur snabb din sampling är.
Jag är visserligen ute på jobbresa men kan inte låta bli, Du kan inte bunta ihop ett antal signalvärden, det ska vara logaritmiskt om det ska funka som VU meter graderag i dB.