Amplitude zählen und Phase bestimmen am Sinus

Gast #978560
Einfache Aufgabe, trotzdem habe ich keine Lösung gefunden.
Mit dem ATmega8 möchte ich die beiden angehängten Signale per AD-Wandler 
einlesen. Dann brauche ich daraus folgende Information:
- Die Phase, "läuft der andere Sinus vor oder nach?"
- Zählen der durchgelaufenen Amplituden
Also das was jede machanische Maus macht.
Hat da einer eine (C-Code) Idee?
Gast #978564
Hi,

Eine Möglichkeit die Amplituden zu zählen währe per Komperator die 
Nulldurchgänge, o.Ä. zu zählen.

Die Phasenverschiebung ließe sich z.b. durch eine Additionsschaltung 
bestimmen.
Andere Möglichkeit: Wenn du die Nulldurchgänge zählst, kannst du auch 
die Zeit zwischen den Nulldurchgängen messen, funktioniert halt nur dann 
wenn die Frequenz des Signals klein genug ist...

mfg
Andreas
#978629
Bei deinem Signal ist der Phasenvergleich keine so leichte Aufgabe, denn 
die Signale haben unterschiedliche Formen. Also musst du dich zunächst 
entscheiden, ob du nach der Differenz von Maximum, Nulldurchgang, 
minimum oder sonstnochwas suchst. Erst dann kann eine geeignete Methode 
gewählt werden.
Auf jeden Fall brauchst du eine ausreichende Anzahl AD-gewandelte Werte 
pro Periode oder du löst das, wie Andreas schrieb, mit einem Komparator 
(geht nur für Nulldurchgänge oder andere feste Schwellen).

Grüße, Peter
#978635
Wenn Du nur eine "Maus" nachbilden willst, gehts ganz einfach:

Lass Dein Signal über einen Schmittrigger laufen und Du erhällst ein 
Rechtecksignal. Mit dem zweiten dasselbe!

Signal 1 neg.Flanke:
  Wenn Signal 2=Hi Zähler++
  Wenn Signal 2=Lo --Zähler

Geht natürlich auch mit der anderen Flanke.


Gruss T.A.
Gast #978775
"Die Phasenverschiebung ließe sich z.b. durch eine Additionsschaltung
bestimmen."
--> Ich habe mal die Phasen addiert, siehe Anhang, aber wie komme ich 
jetzt an die Verschiebung ran?

Sonst finde ich die letzte Lösung schön simpel. Allerdings muss ich mal 
sehen was passiert, wenn das Signal auf null stehen bleibt.

Weil ursprünglich kommt das Signal von diesem Controller:
http://mcu.emea.fujitsu.com/mcu_product/detail/MB90F598GHPF.htm
Genau genommen aus einem der Schrittmotorausgängen welches dann durch 
ein R-C Tiefpass gefiltert wird weil der im PWM Betrieb arbeitet.
Letztendlich will ich nur wissen wo der Schrittmotor gerade hin zeigt 
und dem Controller vorgaukeln, dass wirklich ein Schrittmotor 
angeschlossen ist (Thema Homing). Dabei kann ich aber nicht die Firmware 
des Controllers verändern.
Die Holzhammer Methode wäre Schrittmitor anschließen und ein Poti 
mechanisch draufschnallen. Finde ich aber irgendwie bäh.
Vielleicht hat ja noch einer eine schlaue Idee wie mann die 
Schrittmotorposition ermitteln kann.
Angehängte Dateien:
Gast #1362784
Hallo Fly,

ich habe das gleiche Problem. Ich moechte auch die Phasenverschiebung 
messen. Kannst Du mir bitte sagen, ob du es schon geschaft hast?

danke

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.