PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe! Audiopegelmesser mitdem ATmega88



freggl
01.06.2007, 16:59
Kann mir vieleicht jemand mit einem Projekt weiterhelfen, welches ich bis zum 29.06.07 abgeben muß?
Ich soll mit einer Platine ( Minimexle ) einen Audiopegelmesser machen! Kenne mich damit aber leider noch nicht so gut aus. Ich lasse mal Die Aufgabenstellung da und wäre echt klasse wenn mir jemand weiterhelfen könnte! Vielen dank schon mal im voraus!!

Aufgabenstellung
Programmieren Sie einen Audio-Pegelmesser, der ein von außen angelegtes Audio-Signal (Buchse X2, Pin 5) in
dB-Werten zur Anzeige bringt. Die Kopplung des Signals an den Mikrocontroller erfolgt mit Abtrennung des
Gleichspannungsanteils über einen Kondensator (JP1 2-3, JP2 1-2). Als 0 dB wird hier ein Spannungspegel von
1V effektiv festgelegt. Der A/D-Wandler des Mikrocontrollers misst dazu in regelmäßigen Zeiten (< 1 ms) die
Signalamplitude. Das Maximum von 100 aufeinander folgenden Messungen wird dann zur Berechnung des
aktuellen Signalpegels verwendet.
Optional kann noch der Audio-Pegel als Bargraph in der zweiten Zeile auf dem LCD-Display angezeigt werden.
Dazu müssen eigene Sonderzeichen für das Display definiert werden.
Herangehensweise
1. Recherchieren/entwickeln Sie dazu die Funktionsweise bis 25. Mai von:
• Definition der dB-Skalierung. Umrechnung Messwerte in dB am besten über Tabelle
• Funktion und Einstellungen des A/D-Wandlers auf dem ATmega 88
• Verfahren zur Ermittlung des Maximum einer Anzahl von Messwerten
• Option: Generierung von eigenen Zeichen auf dem LCD-Display
2. Beschreiben Sie verbal die genaue Funktionalität (Abstract 10 Zeilen) bis 25. Mai
3. Erstellen Sie ein Verzeichnis aller verwendeten Funktionen mit deren Schnittstellen bis 5. Juni
4. Erstellen Sie ein Verzeichnis der benötigten Variablen incl. Scopes und Typen bis 5. Juni.
5. Zeichnen Sie ein vollständiges Flussdiagramm oder Struktogramm der Funktionen bis 12. Juni.
6. Implementieren Sie das Programm und kommentieren es ausführlich bis 29. Juni.
7. Letzter Abgabetermin 29. Juni 12:00. Danach gilt die Prüfung als nicht bestanden.
Abzugeben sind
1. Eine verbale Beschreibung des Programms (2-3 Seiten ohne Flussdiagramm, wo Sie auf die o.g. Fragen
eingehen)
2. Alle Unterlagen, die im Teil "Herangehensweise" entstanden sind in einem .zip-File
3. Beschreibung der Funktion des Programms (maximal zwei Seiten) muss in englischer Sprache abgegeben
werden.
Stellen Sie Fragen an Ihre Betreuer, wenn Sie etwas nicht verstehen – bevor Sie ins Blaue hinein
programmieren!
In den Laborzeiten stehen die Betreuer für Beratung und Rücksprache zur Verfügung.

fluchtpunkt
01.06.2007, 18:18
Kann mir vieleicht jemand mit einem Projekt weiterhelfen, welches ich bis zum 29.06.07 abgeben muß?
weiterhelfen oder fuer dich loesen? Sieht eher nach letzterem aus.

Helfen koennen dir bei konkreten Fragestellungen wohl einige Leute, aber ich glaube die wenigstens sind bereit fuer dich deine Pruefungsaufgabe zu loesen.

ACDC
01.06.2007, 18:24
Dann zeig doch einfach mal, was Du zu Punkt (1) und Punkt (2) schon abgegeben hast ! Das musst Du ja schon fertig haben, und dann sind wir alle auf einem Stand. Und wenn Du dann konkrete Fragen stellst, dann kann man Dir vielleicht auch helfen - denn bei den meisten hier ist die Kristallkugel regelmäßig kaputt ! :-)

Gruß, Andreas

freggl
02.06.2007, 10:09
Ne machen will ich das schon selber, aber ich komme grad nicht richtig weiter. Ich habe den ADC so weit eingestellt das er das Eingangssignal aufnimmt. Jetzt habe ich zwei Werte. Jetzt will ich eine Schleife mache die das hundert mal abfragt und den höchstwert übernimmt, was auch noch kein Problem darstellt, aber ich habe schon überall gesucht und ich weiß nicht wie ich aus den Werten eine dB skalierung machen soll, wie rechne ich den Wert aus und wieso Tabelle? Geht das nicht über eine Funktion?
Wäre nett wenn ihr mir helfen könntet
MfG Heiko

lorcan
02.06.2007, 11:28
Weil die Berechnung auf einem 8-Bit-Mikrokontroller zu Zeitaufwendig ist!
Eine Suchfunktion die eine Vergleichstabelle abfragt ist da schneller.
Referenz ist 1 Volt, die dB-Tabelle müßtest Du darauf beziehen und selbst berechnen.
Gruß Lorcan

wkrug
02.06.2007, 23:53
Ich denk mal das der ATMEGA 88 auch eine Auflösung von 10 Bit beim A/D Wandler hat.
Somit wird deine dB Tabelle 1024 Werte haben.

Audio Pegelmesser haben üblicherweise auch einen Übersteuerungsbereich von +3..+6 dB. Ich weiss nicht ob Du das berücksichtigen musst.

Die Formel für deine dB Anzeige wird wohl dB=20xlog(U/U0) sein - schau mal in deine Formelsammlung.
Wobei U0 ja mit 1V Vorgegeben ist. Der Rest ist noch ein bischen Rumrechnerrei von wegen der Regerenzspannungsquelle und dem Formfaktor. Soll das Gerät Spitzenwerte oder Effektivwerte anzeigen ? Das ist in der Aufgabenstellung nicht eindeutig definiert und Bedarf vermutlich noch einer Nachfrage. Wobei Effektivwerte natürlich auch vom Formfaktor des eingehenden Signals abhängig sind und sich nicht so ganz einfach berechnen lassen.

Für die Bargraph Anzeige kannst du noch einen kleinen Gig einbauen.
Gute Audiopegelmesser zeigen den Spitzenwert der letzen 2..3 Sekunden als einzelnen Balken über dem aktuellen Audiosignal an.

Als Symbole für das Display würd ich einen Senkrechten Strich, Zwei senkrechte Striche .... 4 senkrechte Striche.
also:
| || ||| ||||
definieren.
5 Senkrechte Striche = klotz ist im Display schon definiert.
Trenner für die Bargraphanzeige werden wohl wegen der nur 8 möglichen Zeichen auf dem Display nicht gehen- 4 hast Du ja schon verbraten.
Somit kriegst Du bei einem 16x2 Display bis zu 80 Stufen für die Bargraph Anzeige.

Viel Erfolg für dein Projekt.

heikilo
08.06.2007, 11:01
Hi freggl,
sag mal an welcher Hochschule bist du denn? Ich habe nämlich genau dasselbe Projekt bekommen wie du!
mfg

wkrug
12.06.2007, 07:49
@heikilo & freggl
Ich würd mir mal für euer Projekt den AD 636 JH anschauen.
Das ist ein Effektivwert Mess IC mit dB Ausgang - wenn ihr sowas benutzen dürft ?!
Die Logerythmus Berechnung könnt ihr somit vergessen.

heikilo
12.06.2007, 18:08
Danke, wir müssen aber das so genannte MiniMexle (http://www.minimexle.de/)
auf dem der ATmega88 drauf ist benutzen.

Vorausgesetzt freggl ist an der selben Hochschule! Wenn er sich mal melden würde, wüsste man vielleicht bescheid.

wkrug
12.06.2007, 18:22
Hab mir mal eueren MiniMEXLE angeschaut.
Wie macht ihr das da mit der Gleichrichtung ?
Wird da noch ein aktiver Gleichrichter vorgeschaltet oder wollt ihr nur die positiven Halbwellen auswerten und die negativen über die Schutzdiode kurzschließen ?

heikilo
12.06.2007, 18:31
Du fragst aber Sachen, so stehts mal in de Afgstellung:
Die Kopplung des Signals an den Mikrocontroller erfolgt mit Abtrennung des
Gleichspannungsanteils über einen Kondensator (JP1 2-3, JP2 1-2)

Also extern schalten wir nix mehr davor! Alles fertig so wies ist.

http://www.minimexle.de/shop/pub/Bauanleitung%20MiniMEXLE.pdf

wkrug
12.06.2007, 18:44
Ich hab mir nur den Schaltplan angeschaut und nicht mehr nochmals in der Aufgabenstellung gelesen.
Ihr macht das also mit den positiven Halbwellen und der Schutzdiode - alles klar.
Habt ihr beide dann jetzt noch konkrete Fragen, oder ist euch schon alles klar und der Quellcode am fertig werden ? :-b

freggl
28.06.2007, 10:33
Wir sind wohl beide an der HS-Heilbronn! Der Jan hat dich doch schon mal angeschrieben! Wir sind mit dem Quellcode soweit fertig aber irgendwas stimmt noch nicht!! Ich weiß nicht warum aber er zeigt immer 22,00 dB an obwohl ohne Spannung theoretisch -46,25 dB darauf stehen sollte!
MfG Heiko

wkrug
28.06.2007, 19:01
Ich weiß nicht warum aber er zeigt immer 22,00 dB an obwohl ohne Spannung theoretisch -46,25 dB darauf stehen sollte!

Welcher A/D Wandlerwert gibt denn der A/D Wandler aus ?
Lasst euch das doch mal in der zweiten Zeile eueres Boards ausgeben.

Habt ihr beim A/D Wandler auch die interne Referenzspannung mit 2,56V konfiguriert ?
Habt ihr den A/D Wandler auf "Messung gegen GND" und nicht auf "Differenzielle Messung" eingestellt ?

Bei 0V Sollten eigentlich - unendlich oder Underflow ausgegeben werden.

+22dB ist eigentlich nicht möglich, da der höchste Tabellenwert ja 8,16dB ist.

Habt ihr da irgendwo einen Fehler in der zuordnung gemacht ?
Habt ihr einen Fehler in der Aufarbeitung der Tabellenwerte für das Display drin ?
Testet das Ding doch mal mit dem Simulator des AVR Studio aus, mit Pseudo Werten für den A/D Wandler, da sollte sich schnell zeigen wo der Hund begraben liegt.

freggl
29.06.2007, 09:52
Ich habs fertig, vielen Dank an alle die mir hier weitergeholfen haben!!
Ich hab jetzt ne Anzeige zwischen -46,25 und 14, 25 inklusive Balkenanzeige und es läuft.
MfG Heiko