Forum: Mikrocontroller und Digitale Elektronik Amplitude zählen und Phase bestimmen am Sinus


von Fly (Gast)


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?

von Fly (Gast)


Lesenswert?


von andreas (Gast)


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

von Peter R. (gelb)


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

von T. A. (wambly)


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.

von Fly (Gast)


Angehängte Dateien:

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.

von tetef (Gast)


Lesenswert?

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

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.