Hallo, ich möchte gerne die Differenzzeit zwischen 2 Signalen messen! Genauer! Ich habe eine Nulldurchgangserkennung mit einem Komparator realisiert der mir halt beim Nulldurchgang der Spannung einen Rechteckimpuls erzeugt der durch den Folgenden Nulldurchgang beendet wird. Eine zweite Schaltung macht dieses für den Strom. Nun möchte ich moglichst einfach die Zeit zwischen den Signalen messen um auf die Belastung ( Ohmsch,Induktiv,Kapazitiv ) zu schliessen und diese auch über an anderer Stelle gemessenen Werte berechnen zu können. Mit anderen Worten ich möchte den Phasenwinkel messen.
Hmm, kleiner Taktgenerator (z.B. NE555) an nen Zaehler anschliessen und dessen Ausgabe auf nem 7-Segment Display anzeigen. Allerdings kannst du kapazitive von Induktiven lasten nicht wirklich unterscheiden, weil du t=0 nicht kennst und damit nicht weisst, ob der Strom der Spannung voraus- oder nacheilt.
Wenns nur um den Betrag der Phasenverschiebung geht, dann die beiden Rechtecksignale mit einem Exklusiv-ODER verknüpfen. Du bekommst dann am Ausgang vom EXOR einen Impuls, wenn die beiden Signale nicht gleich sind (also für die Zeit zwischen Spannungs- und Stromnulldurchgang, unabhängig von der Reihenfolge). Die Länge dieses Impulses entspricht der Phasenverschiebung. Die lässt sich dann leicht mit einem Timer (mit einem kleinen µC mit Input Capture oder eben einem diskreten Zähler) erfassen und ausgeben.
Die ganze Geschichte soll mit einem µC realisiert werden! Doch das müste eigentlich gehen wenn ich die Spannung als 1.Trigger nehme egal zu welchem zeitpunkt dann kann bei Kapazitiver Belastung erst 270° später eine Steigende Flanke kommen und bei induktiver Belastung kommt spätestens 90° später eine steigende Flanke das müsste doch zu unterscheiden sein.
Ok, solange du nur +/- 90 Grad messen koennen willst, ist das ok. Dann nimmst du einen uC und schliesst die beiden Komparatoren an jeweils einen interrupt Eingang an. Wenns nicht extrem genau sein soll, reicht beim AVR der interne Takt als Zeitreferenz. Bleibt nur noch das LCD- oder 7-Segment Display.
Wie ist das mit input capture da ist doch die Timerfunktion schon integriert oder?
Mit meinem Vorschlag könntest Du das Vorzeichen übrigens auch ermitteln, indem Du das Spannungssignal an einen weiteren Pin des µC führst und bei der steigenden Flanke des EXOR-Ausgangs den Zustand sicherst und bei der fallenden Flanke ebenfalls. Dann die beiden Werten wieder EXOR-verknüpfen. Ist das Ergebnis 1, dann eilt der Strom nach, ist es 0, dann eilt er vor (Wenn ich nichts übersehen habe...) Überlegung: Wenn die steigende Flanke auftritt (weil entweder der Strom durch Null gegangen ist oder die Spannung) registriert der µC durch den Capture den Impuls, sichert einen Timerwert und gleichzeitig den Zustand des Spannungssignals. Wenn dann die fallende Flanke kommt, wird der zweite Capture-Wert gesichert und wiederum der Zustand des Spannungssignals. Hat das Spannungssignal in der Zwischenzeit seinen Zustand geändert (also ist die Spannung durch null gegangen), dann bedeutet das, dass der Strom noch nicht durch null gegangen ist und demzufolge nacheilt. In dem Fall ergibt eine EXOR-Verknüpfung des Spannungssignals mit dem ersten Wert eine '1', andernfalls (wenn der Strom voreilt) eine '0'. Da bei induktiven und kapazitiven Lasten die Phasenverschiebungen im Bereich +-90° liegen, müsste das so gehen. Problematisch ist bei der Sache das Timing und damit die Auflösung, um auch kleinere Verschiebungen erfassen zu können. Wenn Du eine einigermaßen vernünftige Auflösung erreichen willst, ist es ein klarer Fall für Assembler, da bei einer Interrupt-Steuerung sonst durch den Compiler u.U. zu viel Overhead durch das Sichern von Registern beim Einsprung in die ISR entsteht. Mit externen Interrupts wird das ganze möglicherweise noch ungenauer, weil man erst verzögert in der ISR den Timer bearbeitet. Mit Capture benötigt man im Prinzip nur einen Interrupt, dessen Handler man in Assembler dann auch sinnigerweise direkt in die Vektortabelle schreibt (im Falle der Verwendung eines AVR natürlich), um die drei Taktzyklen für den Sprung zu vermeiden. Außerdem sichert das Capture-Ereignis verzögerungsfrei den Timerwert bei Auftreten der Flanke.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.