Ich habe mal kurz in das Datenblatt des ATMEGA 328P geschaut.
Dort steht unter "Analog-to-Digital Converter" die Angabe "13 - 260 ?s Conversion Time"
Deshalb ist es wohl nicht möglich aus einem 20µs dauernden Impuls die maximale Spannung zu erfassen.
Man müsste innerhalb der 20µs schon mehrmals messen um den Maximalwert zu finden, dazu dann noch die Verarbeitung der Messwerte die auch nochmal Zeit kostet.
Ohne zusätzliche Hardware geht es also nicht.
Ich habe deshalb mal eine Idee zu Papier gebracht wie es eventuell machbar wäre.
Die Schaltung ist nicht getestet und sollte nur als Grundlage für eine Diskussion dienen.
Bauteilauswahl und Schaltung können geändert werden.
Als Anhang eine Grafik und für diejenigen die Eagle verwenden der Plan als Eagle-Datei.
Die Funktion der Schaltung im Überblick:
Ein eingehender Stromimpuls am Eingang triggert nach einer Zeitverzögerung für eine kurze Zeit die Sample and Hold Stufe, welche den Maximalwert der Impulsspannung längere Zeit speichert.
Die Funktion der Schaltung im Detail:
IC1 dient dazu aus +5V Versorgungsspannung eine -5V Spannung für die Sample and Hold Stufe (IC4) zu erzeugen, weil der ohne negative Spannung wohl nicht arbeitet.
IC2A ist als Komperator geschaltet. Der OP vergleicht die am Messwiderstand (R1) abfallende Spannung mit einer Vergleichsspannung die über den Spannungsteiler R2 und R3 gebildet wird. Die Vergleichsspannung beträgt ca. 107mV.
107mV entsprechen einem Eingangsstrom von ca. 2,1mA durch R1.
Wenn der Eingangsstrom >2,1mA ist wechselt das Ausgangssignal von IC2A von LOW auf HIGH.
Dieses Signal triggert dann ein Monoflop (IC3A) mit eine Zeitkonstanten von 4µs. Zu diesen 4µS addiert sich noch die Schaltverzögerung des Operationsverstärkers IC2A von geschätzten 2µs.
6µs nachdem der Eingangsstrom >2,1mA ist wird dann das Monoflop (IC3B) getriggert.
IC3B hat eine Zeitkonstante von 10µS. Innerhalb dieser 10µS wird die S&H Stufe von HOLD auf SAMPLE geschaltet und der Messwert abgetastet. Nach Ablauf der 10µS steht dann am Ausgang A1 der Maximalwert der Eingangsspannung(strom) zum Impulszeitpunkt für längere Zeit (bis zum nächsten Eingangsimpuls) zur Verfügung.
Eine fallende Flanke am Ausgang A2 dient dazu dem Arduino mitzuteilen, dass ein neuer Messwert zum Einlesen bereit steht.
Das Signal wird sinnvollerweise per Interrupt am Arduino UNO Pin 2 (attachInterrupt(0, ISR0, FALLING)
erfasst.
Danach kann dann der Analogeingang in aller Ruhe eingelesen werden. Bis zum nächsten Impuls sind immerhin 500mS Zeit.
Die Zeitverzögerung durch IC3A von 4µS soll dazu dienen nicht bereits die steigende Flanke des Stromsignals zu erfassen sonder erst das Plateau des Impulses.
Die angegebenen Zeit- und Spannungswerte sind rein rechnerisch ermittelt bzw. aus den kleinen Diagrammen der Datenblätter abgeschätzt. Da ist sicherlich noch Optimierungsbedarf am Testaufbau der Schaltung nötig.
Wichtiger wäre erst mal eine grundsätzliche Prüfung der Schaltung ob der Vorschlag so überhaupt funktionieren kann.
Gruß Peter
S&H_Test_01.sch (601 KB)