Amplitude zählen und Phase bestimmen am Sinus

Gast #978560
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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
Lesenswert?

"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:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren