PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ermitteln von Impulsen



Hellmut
18.07.2004, 16:07
Hallo Freunde

jetzt ist meine RN-Control-Karte da und ich möchte damit die Impulse vom Istwert-Geber meiner Dunkermotoren dekodieren. Ideal wäre hierfür ein nichtvorhandener Oszylloskop, weshalb ich die Impulse an den DA-Port führen möchte. Ich habe aus dem Katalog die Daten zu Polarität und Amplitude der Zählimpulse.

Welche Auflösung könnte mit dem mega32 bei 16MHz erreicht werden?

Der Motor wird mit 12V unbelastet betrieben, den Istwertgeber habe ich als Bild auf meiner Webseite abgelegt.

http://www.kohlsdorf.privat.t-online.de

unter Hobbies/"Voilier Bauphase" als letztes Bild .

Frank
18.07.2004, 18:57
Ich hab es mal hier her verschoben weil es wohl doch mehr eine AVR Frage ist. Nehme an das ist dein Istwertgeber

http://www.kohlsdorf.privat.t-online.de/gallery/g.vl9spvgj.1p6tl1pv.3o/media/orig_Pict1557.jpg

Liefert der eine bestimmte Anzahl Impule per Umdrehung= Warum hat der soviel Pin´s?

Beim Mega32/16/RN-Control könntest du den Interrupt verwenden um die zu zählen. Wenn die möglichst kurz gehalt wird, dürfte man schon recht hohe Raten bessen können. Ich schätze mal das 500 Khz drin sind. Aber vielleicht kann das noch jemand mit mehr AVR Programmiererfahrung beantworten.

Man könnte auch die Timer Anschlüsse T0 oder T1 nutzen. Die Impulse zählen dann den Timer wie einen Counter hoch. Aber dann müsstest du auf einen Motor verzichten, weil diese von vorhandenen Motortreiber genutzt werden.

Gruß Frank

Hellmut
18.07.2004, 21:13
Hallo Frank
der Istwertgeber stammt wohl von hp, da ich die englische Bezeichnung dafür nicht kenne konnte ich das Teil noch nicht im Internet suchen. Nach dem Datenblatt von Dunkermotoren, gehört zu Alcatel, ist das ein 2-Kanal optischer Inkrementalgeber mit je 500 Impulsen pro Umdrehung mit Referenzimpuls. Das ganze wird mit 5V, max. 85mA betrieben. Die beiden Kanäle sind um 90° phasenversetzt. Ausgangsspannung low: 0,4V max, high 2,4Vmin. Pulsbreite von 180°, also 1ms high, 1ms low jeweils minus 50% Anstiegs- und Abfallzeit.

Nach deiner Information könnte ich bestenfalls knapp 500 Abtastpunkte pro Zustand des Istwertgeber-Signals erhalten. Also ist genug Leistungsreserve vorhanden.

Zu deiner Information, ich möchte im Versuchsaufbau die Qualität der Signale des Istwertgebers untersuchen, also durch den AVR das tun was sonst ein Oszyloskop täte. Die Motoren und der Istwertgeber sind Teile die aus einer Anlage bei der Wartung entnommen wurden! Also für die ursprüngliche Anwendung fehlerbehaftet! Jetzt möchte ich auf diese Weise "gute" Istwertgeber/Motoren Paarungen identifizieren! Meine Zielsetzung ist es einen Decksaufbau meines Segelbootes innerhalb von max. 0,5 Sekunden um 24-25cm zu verschieben. Durch den Istwertgeber möchte ich den Antrieb "intelligent" fahren, die Endstellungen sind mit Endschaltern gesichert. Sollten die Istwertgeber es ermöglichen die Endpositionen rechnergesteuert anzufahren wäre das Problem des kontrollierten Abbremsens und des zuverlässig in der Endstellung Haltens gelöst. Vorendchalter wären überflüssig. Die Antriebseinheit soll ihren eigenen Boostregler für 12VDC->40VDC aus 6VDC oder 12VDC plus Fahrtregler haben, sowie einen AVR mit I2C zur Kommunikation mit der RN-Control, sowie als PWM-Generator und Steuereinheit für Schaltregler und Fahrtregler.

Die Pins sind Kanal A, Kanal B, 1x Referenzimpuls,5VDC und GND. Die Ausgänge TTL-kompatibel. Kannst du mir sagen wie das mit dem Referenzimpuls ist? An welchen Port sollte ich die Signalleitungen legen, und zwar jetzt für die Analyse der Funktion der Istwertgeber und später als Input für die Steuerung des Fahrtreglers und der Positionsbestimmung?
Für die Analyse vermute ich an einen der DA-Ports?

Frank
18.07.2004, 23:17
Hi Helmut,

so ganz versteh ich nicht wie ein Istwertgeber arbeitet, bislang hab ich mich mit dem Thema nicht beschäftigt. Bei meinen Projekten bin ich immer von einem normalen Drehgeber der eine bestimte Zahl von Impulsen pro Umdrehung ausgibt ausgegangen.
Ist das beim Istwertgeber genauso, nur das er noch ein zweiten tewas versetzten Impuls generiert? Dienst das dazu die Richtung der Drehbewegung zu ermitteln oder was bezweckt man damit?
Und was ist das für ein Referenzimpuls?

Bei normalen Drehgebern bietet sich ein Interrupt Port wie PD3, PD4 oder PB2 beim Mega32 (RN-Control) an. Inwieweit das bei deinem Geber läuft, kann ich mangels genauer Funktionsweise auch nicht genau sagen.

Vielleicht kann Kjion (wenn noch nicht im Urlaub) oder ein anderer AVR-Experte Dir da noch ein Tip geben.

Gruß Frank

sonic
19.07.2004, 11:35
Hi Helmut,
so ganz versteh ich nicht wie ein Istwertgeber arbeitet, bislang hab ich mich mit dem Thema nicht beschäftigt. Bei meinen Projekten bin ich immer von einem normalen Drehgeber der eine bestimte Zahl von Impulsen pro Umdrehung ausgibt ausgegangen.


Hi Frank,

So wie ich das verstanden hab ist das kein "Istwertgeber". Das ist ein inkrementaler Drehgeber. Istwert bedeutet absolute Positionsmessung. Dazu müssten auf der Scheibe mehrere Spuren in einem bestimten Bitmuster vorhanden sein (Greycode, hi Gley;-))



Ist das beim Istwertgeber genauso, nur das er noch ein zweiten tewas versetzten Impuls generiert? Dienst das dazu die Richtung der Drehbewegung zu ermitteln oder was bezweckt man damit?
Und was ist das für ein Referenzimpuls?


Wie gesagt, ich glaub nicht, daß das ein Istwertgeber ist. Laut Homepage habe ich recht ;-) Das 2. Signal ist dazu da die Drehrichtung bestimmen zu können.

Du hast in dem Sensor 2 inkrementale Drehgeber. Jeder gibt dir 500 Impulse/U. Die beiden Drehgeber sind allerdings um 90° versetzt an der Scheibe angeordnet. Dadurch kannst du sagen welches Signal gerade zuerst kommt und daraus die Drehrichtung bestimmen.
-> Quadraturencoder, das ist das selbe System wie z.B. in einer Maus.



Bei normalen Drehgebern bietet sich ein Interrupt Port wie PD3, PD4 oder PB2 beim Mega32 (RN-Control) an. Inwieweit das bei deinem Geber läuft, kann ich mangels genauer Funktionsweise auch nicht genau sagen.
Vielleicht kann Kjion (wenn noch nicht im Urlaub) oder ein anderer AVR-Experte Dir da noch ein Tip geben.
Gruß Frank

So würde ich es auch machen, allerdings würde ich schauen ob mich die Drehrichtung überhaupt interessiert. Falls nicht, reicht es ja nur eines der Signale auszuwerten. Das würde auch nur einen Interrupt/Counter belegen. Ansonsten sollte sich vielleicht über Maus/Quadraturencoder/Avr im Google was finden lassen...

@Hellmut
Bevor du dir einen rießen Stress machst um mit nem AVR die Signale auzuwerten schau mal hier -> http://www.elektron-bbs.de/files/
Mann kann die Soundkarte eines PC als kleines Oszi verwenden. Allerdings kommen Gleichspannungen bei manchen Soundkarten nicht durch. Aber miss zuerst konventionell ob durch das Messen irgendetwas Schaden nehmen könnte. Die Soundkarte sollte bis ca. 20KHz funktionieren...

Gruß, Sonic

Frank
19.07.2004, 13:52
Hi Sonic,
ja so ähnlich hatte ich es mir schon gedacht. Was liefert denn ein Istwertgeber für ein Signal? Eventuell sogar analoges Signal?

Bei dem Sensor mit 2 inkrementale Drehgeber müsste man ja theoretisch auch mit einem Interrupt auskommen. Man müsste dann nur noch einen normalen Port zusätzlich verwenden um die beiden Drehgeber zu unterscheiden. Aber gewöhnlich braucht man ja die Richtung nicht, die weiß man ja wenn man Motoren einschaltet. Auswertung wäre dann ja viel einfacher.

Hellmut
19.07.2004, 16:35
Hallo Frank & sonic

Erstmal danke das ihr euch um mein Thema kümmert. Jetzt zu Euren Antworten:

Sorry, es ist wie sonic sagt ein "Inkremental Drehgeber".Zu den Signalen:
A und B sind um 90° zueinander versetzt, A und B sind 50% high, 50% low, also bei 500 Impulsen/U und circa 60 U/Sekunde des Motors beträgt ein Impulszyklus 30uSekunden, ein High also 15uSekunden. Das heißt ich Interpretiere die Aussage 180° als 50% Dauer des high & low Pegels.

Die Impulse haben einen diskreten Wert, <=0,4V für low und >=2,4V high. Dürften also direkt an D oder B Port Pins gelegt werden?

Die Drehrichtung wäre für mich schon von Interesse, ein "nice-to-have-feature" Was ich nicht verstehe ist wie die Drehrichtung ermittelt wird und wie der Referenz-Impuls aussieht. Welches Signal zuerst kommt kann man ja nicht sagen, da man mit 50% Wahrscheinlichkeit zuerst entweder den A oder den B Impuls bekommt. Aus genau diesem Grunde würde ich vermuten das der Referenzimpuls genau dazu ist, das Eintreten der A & B Impulse zum Referenzimpuls "in-Phase" zu bringen. Daher würde ich vermuten das der Referenzimpuls grundsätzlich wie die Impulse A & B aussieht. Was meint ihr?

Jetzt helft mit bitte noch und sagt wie das mit der Quadranten-Methode funktioniert, bzw. wo ich was dazu finde? Weiterhin habe ich unter dem Link von Sonic nicht gefunden wie eine Soundkarte als Oszi verwendet werden kann. Auch kann ich mir nicht vorstellen wie das sein soll?

Danke nochmals für die bereits geleistete Hilfe und im Vorraus

sonic
19.07.2004, 17:10
Hallo Frank & sonic
...
Die Drehrichtung wäre für mich schon von Interesse, ein "nice-to-have-feature" Was ich nicht verstehe ist wie die Drehrichtung ermittelt wird und wie der Referenz-Impuls aussieht.
...
Jetzt helft mit bitte noch und sagt wie das mit der Quadranten-Methode funktioniert, bzw. wo ich was dazu finde?


wir hatten das letztens schon mal, schau mal hier...
[utl]https://www.roboternetz.de/phpBB2/viewtopic.php?t=2054[/url]



Weiterhin habe ich unter dem Link von Sonic nicht gefunden wie eine Soundkarte als Oszi verwendet werden kann. Auch kann ich mir nicht vorstellen wie das sein soll?
Danke nochmals für die bereits geleistete Hilfe und im Vorraus

Sorry, der Link springt auf die Startseite zurück...du musst auf Elektronik und dann auf Messwerterfassung klicken.

Funktionieren tut das so, das du einen 3,5mm Klinken-Stecker nimmst und an jeweils einen Kanal einfach ne Messklemme klemmst. Zum Schutz der Soundkarte kannst du noch Widerstände einbauen...gibt's Anleitungen im Netz. Ich hab das auch schon gemacht bevor ich mir ein Oszi gekauft hab. Bis jetzt hat's meine SK überlebt...

Den Motor würde ich zum Messen der Signale aber mit der Hand drehen, also nicht volle Pulle mit mächtig Dampf...

Gruß, Sonic

sonic
19.07.2004, 17:13
Hi Sonic,
ja so ähnlich hatte ich es mir schon gedacht. Was liefert denn ein Istwertgeber für ein Signal? Eventuell sogar analoges Signal?


Absolutwertgeber bestehen aus einer Scheibe mit mehreren Spuren. Auf der Scheibe sind entsprechend der Spuren Bitmuster aufgebracht. Jede Spur wird von nebeneinander angebrachten Sensoren ausgelesen. So erhält man einen eindeutigen Code für jede Position. Meistens ist das Bitmuster ein Greycode. Hatten wir letztens schon mal hier im Forum.

Analoge gibt's auch, fällt mir aber grad kein Beispiel ein ;-(

Gruß, Sonic

Manf
19.07.2004, 21:20
Was ich nicht verstehe ist wie die Drehrichtung ermittelt wird und wie der Referenz-Impuls aussieht. Welches Signal zuerst kommt kann man ja nicht sagen, da man mit 50% Wahrscheinlichkeit zuerst entweder den A oder den B Impuls bekommt.
Hallo Hellmut,
ich lese auch die ganze Zeit mit, speziell wenn es um Sensoren geht, aber ich kann nur wenig hinzufügen, zu dem was Sonic schon gesagt hat. Ich kann nur versuchen es noch mal zu verdeutlichen.

Zwei um 90° versetzte Signale mit der relativen Einschaltdauer von 50% sind ein 4 Quadraten Signal (Quadratur Codierung). Wenn man die Signalwerte für x und y zu +-1 annimmt, dann erhält man in der (x,y) Ebene vier Punkte mit dem Absolutwert (x=+-1 , y=+-1) die je nach Drehrichtung rechtsherum oder linksherum durchlaufen werden.

Viel einfacher als die Beschreibung sieht die Praxis aus: Man erhält mit dem einen Signal eine Impulsfolge, bei der die negativen Flanken zu Zählen sind, wobei das andere Signal je nach Drehrichtung immer gerade auf + oder - steht. Man kann also einen flankengetriggerten Zähler einfach mit Takt und Zählrichtung mit den beiden Signalen beschalten, blind, bei falscher Drehrichtung einmal umdrehen dann stimmt es schon.

Es wäre interessant, das Foto von den Drehgeber noch einmal mit etwas mehr Auflösung zu sehen, hier für das Forum, zur Allgemeinbildung. Könntest Du bei Gelegenheit noch eines machen? Vielleicht durch eine Lupe falls die passende Nahlinse nicht in der Kamera ist. Vielen Dank im Voraus.
Manfred

Frank
19.07.2004, 22:54
Hi,

ja so langsam wird das verständlich mit dem Quadraten Signal. Es wäre schön wenn solche Diskussionen noch mit einem kleinen Schaltbild, das den praktischen Anschluss verdeutlicht, unterstützt würden. Etwas kurz kommt leider in solchen Diskussionen der Software-Teil. Perfekt wäre es wenn man ein paar Codezeilen oder eine Art Flussdiagramm hätte.
Vielleicht hat ja jemand die Lust und auch die notwendige Zeit dies mal zusammenzufassen und in einem Artikel zu posten. Die Begriffe Drehgeber/Istwertgeber und Inkremental Drehgeberkommen werden doch recht häufig genannt, so das dies sicher eine Bereicherung wäre.

Gruß Frank

sonic
19.07.2004, 23:54
Hi,
ja so langsam wird das verständlich mit dem Quadraten Signal. Es wäre schön wenn solche Diskussionen noch mit einem kleinen Schaltbild, das den praktischen Anschluss verdeutlicht, unterstützt würden.


Schaltbild ist recht schwierig, bei dem Photo kann man ja nicht wirklich viel erkennen...



Etwas kurz kommt leider in solchen Diskussionen der Software-Teil. Perfekt wäre es wenn man ein paar Codezeilen oder eine Art Flussdiagramm hätte.
Vielleicht hat ja jemand die Lust und auch die notwendige Zeit dies mal zusammenzufassen und in einem Artikel zu posten. Die Begriffe Drehgeber/Istwertgeber und Inkremental Drehgeberkommen werden doch recht häufig genannt, so das dies sicher eine Bereicherung wäre.
Gruß Frank

Hier gibt's ne kleine Erklärung + Code für einen PIC
http://www.piclist.com/techref/io/sensor/pos/enc/quadrature.htm

weitere
http://robotics.technion.ac.il/courses/Advanced_Laboratory/Lab1/Quadrature_Encoder.html
http://www.ee.nmt.edu/~wamageed/EE231-Fall03/Fall-03-Lab/lab12/lab12.html

Markusiii
06.05.2006, 11:21
Hallo !

Wie macht man das eigentlich mit der Montage eines solchen Encoders ?
Muss er nicht ziemlich exakt und Spielfrei montiert sein, sodass er korrekte Ausgangssignale liefert ?

Grüsse,

Markus

Hanni
06.05.2006, 11:47
Also von anderen Anwendungsfällen (Radarsysteme - ASR 910 / PAR 80) bin ich vom Prinzip her mit Encodern vertraut. Das sind ziemlich monströse Geräte (uralt halt) ....

Bei den Dort eingesetzten Encodern gibt es eigentlich nur 2 Dinge zu beachten.

1. die korrekte Montage (Mittig am Drehpunkt der Antenneachse)
2. der korrekte Abgleich - man will ja den Richtigen Bezug zu den Daten haben ... (kann durhaus länger dauern ...)

Wenn interesse besteht, könnte ich ja mal nen Blick in die betreffenden Schaltbilder werfen und hier ein Prinzipschaltbild reinstellen.

ASR 910 (http://www.itnu.de/radargrundlagen/19.kartei/karte204.de.html)
PAR 80 (http://www.itnu.de/radargrundlagen/19.kartei/karte212.de.html)

Grüße,

da Hanni.

Hellmut
08.05.2006, 01:17
Hallo Markus

Ich setze Dunkermotoren ein die den Encoder bereits vormontiert haben. Der hat den gleichen Durchmesser wie der Motor und verlängert diesen um circa einen cm!

Markusiii
08.05.2006, 13:16
hmmm....

Muss ein solcher Encoder überhaupt exakt mittig laufen, bzw. seine Taktscheibe ?
Ich könnte es mir vorstellen, dass bei einem nicht mittigen Lauf evtl. Fehlmessungen entstehen könnten.
Hat damit jemand Erfahrung ?
Auch bin ich noch nicht fündig geworden, bei der Suche nach einen Motor
mit solchen Lochkreisen wie sie der Encoder hat, und ich ihn somit direkt
anzuschrauben, wobei er dann mittig sein sollte. Die Welle müsste auch ca. 5 mm haben.
Selbst Dunkermotoren mit solchen Möglichkeiten hab ich nicht finden können.

Vielleicht kann dazu jemand was sagen ?


Grüsse,

Markus

Hellmut
08.05.2006, 15:01
Dunker Motoren gibt es schon mit Encodern. ich habe eine sehr günstige Quelle und setze diese ein!
http://www.dunkermotoren.de/default.asp?gid=0&bid=0&cid=0&sid=7&lang=1&id=9&mid=6

Hier der Link bei Dunkermotoren!

Es macht allerdings schon Sinn sich über die wirklichen Anforderungen an die Genauigkeit und Auflösung der Encoder Gedanken zu machen.

Bei meinen Motoren mit dem im Link angezeigten Encode bekomme ich pro Motorundrehung 500 Impuls Tripel aus denen man auch die Drehrichtung durch die Relation der Impulse "A" und "B" zum Sync-Puls herleiten kann.

In meiner Anwendung komme ich mit wesentlich weniger Auflösung hin!