Forum: Mikrocontroller und Digitale Elektronik Wie Peak-Hold realisieren? (Atmega8, Assembler)


von Erik D. (dareal)


Lesenswert?

Wie realisiert man am besten ein Peak-Hold für den ADC?

Indem man ständig die HByte und LByte vergleicht die der ADC ausspuckt 
(Vergleich von 16 Bit wie realisierbar?) oder gibt es da andere 
Möglichkeiten?

von Benedikt K. (benedikt)


Lesenswert?

Ich würde es so machen:
ADC Wert > Peak ?
Ja: Peak=ADC Wert
Nein: Peak = Peak - 1

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Willst´n machen? LED-VU-Meter?

von Erik D. (dareal)


Lesenswert?

Nein, soll eine Stromanzeige werden. Weil der Strom sich schnell in 
großen Bereichen ändert soll das ganze eine Peak-Hold Funktion haben. 
Ausgabe erfolgt auf LCD.

von Fred (Gast)


Lesenswert?

Hallo,

@Benedikt K.:

was genau soll denn die "-1" bewirken. Ist das sowas wie an z.B. 
Stereoaussteuerungsanzeigen, die dann  langsam wieder auf Null runter 
fahren?

Gruß

Fred

von Mark (Gast)


Lesenswert?

Wenn du ein paar Cent in Hardware steckst, könntest du kürzere Peaks 
detektieren:
Einen OP als Spannungsfolger beschalten. Mit dem Ausgang vom OP über 
eine Diode einen kleinen C laden. Diesen dann mit dem ADC auslesen.
Um den Kondensator zu entladen -> einfach einen kleinen npn mit dem µC 
ansteuern, der den C nach der Messung auf Masse zieht.

von Benedikt K. (benedikt)


Lesenswert?

Fred wrote:

> was genau soll denn die "-1" bewirken. Ist das sowas wie an z.B.
> Stereoaussteuerungsanzeigen, die dann  langsam wieder auf Null runter
> fahren?

Ja.
Je größer die Zahl, desto schneller fällt der Wert wieder ab.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Mark: externe Hardware ist für Signale 0-5V mit bis zu 20kHz Bandbreite 
überflüssig. Kann alles in Software gemacht werden.

von Erik D. (dareal)


Lesenswert?

SO, ich bins wieder.

nen einfachen Peak-Hold habe ich jetzt realisieren können.

Das Ganze dient als Stromanzeige im KFZ für die Endstufen. Diese haben 
in der Zuleitung einen LEM-Stromwandler. Dieser gibt einen Strom aus, 
über eine Bürde mache ich daraus ne Spannung, diese wird mit dem ADC 
gemessen un dann auf einem LCD ausgegeben.

Der Peak-Hold soll dabei dienen als indikator für den Spitzenstrom.

Habe das Ganze jetzt mal provisorisch fertig gestellt und werde das 
jetzt mal im Fahrzeug probieren :)

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Wenn die oberen Segmente aufleuchten, hast Du noch 5 Sekunden Zeit, den 
Feuerlöscher unter´m Sitz hervorzukramen und die Haube aufzureißen... 
lol.

von Erik D. (dareal)


Angehängte Dateien:

Lesenswert?

So, erster Testlauf lief ganz gut :D

Konnte bis 91A (real ca. 87A) messen.

Habe hier aus dem Tutorial die ADC-Wandlung genommen, dazu LCD-Treiber 
und noch einiges Verändert. Oben auf dem Display ist die 
Momentananzeige, unten der Peak (statisch).

Gemessen wurde die Stromaufnahme der Endstufe für den Subwoofer, wobei 
der Stromwandler auf der Plusleitung zwischen Batterie und Kondensator 
war, hinter dem Kondensator kam dann erst die Endstufe. Somit fängt 
dieser auch noch viele Spitzen ab.

Da die AD-Wandlung aus dem Tutorial 256 Werte aufzählt und dann mittelt 
kann man halt keine wirklichen Peaks aus dem Ergebnis ziehen. Wobei ich 
die auch nicht direkt aus dem ADC nehmen will, oder ist das bei sowas 
machbar bzw. sinnvoll (was Streuung/Fehler angeht)?

Messwerte werden mitels LEM-Stromwandler gewandelt, 500A entspr. dabei 
5V.
(das könnte ich ja auch noch leicht abwandeln, Messbereich bis 250A 
sollte vllt. reichen)

von Erik D. (dareal)


Lesenswert?

So, ich glaube es fast selbst nicht wie spät es geworden ist aber so ein 
Atmega kann einen doch extrem fesseln ...

Habe nun noch "ein wenig" an dem Programm gearbeitet und mal morgen 
schauen was draus geworden ist.

Die größten Probleme haben mir die beiden ext. INTs gemacht, welche 
partout nicht laufen wollten. Aber ich glaube da war was in der 
Reihenfolge der Befehle nicht ganz okay.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.