PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Prezäsionsreflexlichtschranke gesucht



gesamtplan
20.10.2009, 00:07
Hallo zusammen,

ich such mir schonseit zwei Tagen nen Wolf und finde einfach nicht das passende. Ich brauche zur genauen Detektion von 33 1/3 1/min einen Drehencoder. Am besten wäre eine Reflexlichtschranke mit einer passenden Ecoderscheibe. Diese müsste allerdings min. 1000 Impulse haben um den Gleichlauf auf 0.05% dektieren und somit regeln zu können. Gibts sowas?

Ich habe bis jetzt nur eine Kombinationvon Avago gefunden. HEDS-9000 und HEDM-6120. Das wäre eigentlich genau was ich brauche. Nur leider habe ich keinen Platz zum einbauen für das ganze bzw es wären massive Änderungen der Konstruktion nötig. Weiß vielleicht irgendwer ob es sowas auch in einer Reflexionsversion gibt?

Ursprünglich war der Plan eine Papierencoderscheiber mit einem CNY70 zu benutzen, aber der schafft die Auflösung leider nicht.

Über etwas Hilfe wäre ich sehr dankbar.

Viele Grüße

Rainer

Netzman
20.10.2009, 03:00
Mit mehreren Encoderscheiben/Lichtschranken, leicht zueinander versetzt, kannst du die Auflösung erhöhen. Statt Papierscheiben funktionieren auch geätzte Platinenscheiben ganz gut.
Hast du keine Möglichkeit die Motorumdrehungen direkt zu messen? (Ich nehme an du misst am Getriebeausgang)

mfg

oberallgeier
20.10.2009, 08:56
... brauche ... einen Drehencoder... habe ich keinen Platz zum einbauen ...Meine Lösung mit einer sehr kleinen Lichtschranke will ich nicht als Allheilmittel anpreisen - aber der Platzbedarf ist wirklich fast unbedeutend. Ich habe die in einen Miniservo untergebracht, siehe hier. (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=437282&sid=a41f61540ccd6197a7081062cc2a357d#437282) In einem Posting weiter oben im selben Thread siehst Du auch, dass als "Encoderscheibe" ein simples, zweiflügeliges Blättchen aus einem sehr feinen Blech (Rasierklinge) dienen kann. Das Ganze läuft völlig zufriedenstellend in mehreren Motoren.


Mit mehreren Encoderscheiben ... leicht zueinander versetzt ...Bei einer versetzten Montage müsste man dringend darauf achten, dass die Position so ist, dass nicht alle versetzten Lichtschranken gleichzeitig auf 0 oder 1 stehen, d.h. der Winkel der Versetzung muss an die Einteilung der Encoderscheibe angepasst sein.

Richard
20.10.2009, 18:02
Moin moin.

Es gibt Magnetische Drehsensoren. Dafür muß ein kleiner Runder
Magnet z.B. auf der Motorwelle befestigt werden. Der Sensor selber
ist ein Chip und muß halt darüber montiert werden. Wenn man an der
Motorwelle herankommt, eine feine Lösung.

Ich habe an einem Scheibenwischer Getriebemotor einige kleine
1mm starke 3mm Durchmesser Magnete auf dem Kollektor geklebt
und einen Hallsensor ca 3x3 mm groß vor den Magneten geklebt.

Getriebedrehzahl 40/1 Min
Untersetzung ca 60:1
Motordrehzahl 40*60 = 2400 * 4 Magnete = 9600 Pulse / Min.
9600/ 40 = 240 bleiben also am Getriebe Ausgang 240 Pulse/ 1/Min.

Gruß Richard

Besserwessi
20.10.2009, 18:56
Mit den CNY70 kann man Streifen bis etwa 1 mm detektieren. Die Reproduzierbarkeit ist sogar noch einiges besser. Wenn man unbedingt 1000 Pulse pro Umdrehung braucht, dann müßteman nur den Umfang entsprechend groß machen, also rund 1 m. Da wäre etwa der Äußere Rand ein LP, sollte also passen.

Es ist aber auch nicht so, dass die zahl der Streifen sich direkt in den Gleichlauf umrechnen läßt. Kurzzeitig, z.B. zwsichen den Streifen sorgt die Trägheit für einen konstante Drehzahl. Die Genauigkeit mit der man die Drehzahl erfassen kann hängt dann nicht so sehr von der Zahl der Impulse, sondern von der Gleichmäßigkeit der Flanken ab. Hier sollte beim CNY vor allem die Abhängigkeit vom Abstand und die Qualität der Signalscheibe das Problem sein. Mit 2 oder mehr Sensoren könnte man da eventuell etwas gegensteuern, weniger um mehr pulse zu bekommen, sondern um verschiedene Teile der Scheibe gleichzeitig abzufragen und so die Fehler rauszumitteln.

gesamtplan
20.10.2009, 19:24
Danke für die vielen Anregungen. Am besten gefällt mir die Geschichte mit der Platine, obwohl das eigentlich auch nicht das ist was ich suche. Bei der Lösung mit zwei Lichtschranken, die man versetzt zueinander positioniert habe ich das Problem das mir für sowas die Interrupts fehlen. Ich hab davon nur zwei, der eine ist mit dem CNY70 belegt und der andere detektiert die Motordrehzahl des Motors der über Riemen mit dem Teller verbunden ist. Somit fällt das leider auch flach.

Zur Anregung mit der großen am Umfang befindlichen Markierung hab ich mir auch schon gedanken gemacht, es schlussendlich aus optischen Gründen wieder verworfen.

Korrigiert mich bitte wenn ich mich irre, aber wenn ich auf eine bestimmte Größe regeln will, sollte ich die auch messen können und wenn ich einen vernünftigen Gleichlauf habe nwill brauche ich viele Impulse, da ich sonst die Abweichung ja garnicht messen kann.

Beispiel:
Drehimpuls ist 30 Hz bei 33 1/3 Umdrehungen (54 Impulse / Umdrehung Messzeit 1s). Wenn ich also nicht immer genau die 30 Impulse erwische sondern mal einen mehr oder weniger, dann habe ich entweder 29 oder 31 Hz was umgerechnet in die Drehzahl einer Abweichung von ca +-3 % entspricht. Dies ist die kleinste Abweichung die ich überhaupt mit so einer Konstruktion messen kann. Wenn ich aber einen Gleichlauf von +-0.5% anstrebe muss ich genauer Messen können um auf einen Gleichlauf dieser Größenordnung überhaupt regeln zu können.

Es gibt zwei Stellschrauben an denen ich drehen kann um die Impulszahl/Messung zu erhöhen. Entweder ich erhöhe die Messzeit, wobei eine erhöhte Messzeit die Regelung verlangsamt, da diese ja einer Totzeit entspricht in der ich nix Regeln kann, da ich ja kein Ergebnis habe oder ich erhöhe eben die Impulse auf der Scheibe. Die dritte hier unsinnige Möglichkeit wäre einfach die Drehzahl zu erhöhen, was bei einem Plattenspieler ja wohl eher schwierig sein dürfte *g.

Aber nochmal zurück zur "Ätzscheibe". Ist es da möglich zwischen dem Kupfer und Glasfaserplatte 1mm Abstand zu detektieren. Ich meine Ätzen könnte ich sowas und bei 200 mm Durchmesser für die gewünschte Scheibe wären das ja doch ein paar.

Ich habe auch schon von einer optischen Maus geschwärmt, doch die kann soweit ich in Erfahrung bringen konnte nur mit SPI kommunizieren und dort hängt schon mein 16 Bit DA-Wandler für den Spannungseingang des Motors.

Ich glaube is sitze etwas in der Zwickmühle.

Richard
20.10.2009, 20:58
Ich glaube is sitze etwas in der Zwickmühle.


Plattenspieler? Hmmm, der Teller hat ja einen ganz netten Umfang.
Probier doch einmal wieviel Pulse eine Lichtschranke liefert wenn
die Bekoderscheibe mittels Gummiring oder Gummiandruckrolle vom
Plattenteller angetrieben wird.

Plattenteller 95 cm Umfang, Dekoderscheibe 9,5 cm Umfang
33 1/Min * 10 = 330 1/ Min * z.B. 70 Streifen Scheibe = 23100
Puls Plattenteller/Umdrehung (Falls ich mich nicht vertippt habe). :-)

Die Maße habe ich jetzt Pi x Daumen geschätzt und die Decoderscheibe
wird warscheinlich "Abrauchen"....Immerhin ein Denkanzatz.

Gruß Richard

Netzman
20.10.2009, 21:35
Mehrere LS könnte man mit XOR-Gliedern verschalten und kommt dann mit einem Interrupt-Eingang aus.

Wesentlich einfacher ist es aber, die Zeit zwischen 2 Flanken vom Encoder zu messen, dann brauchst du auch nicht soviele Pulse/Umdrehung. Die Auflösung hängt dann von der Genauigkeit der Zeitmessung ab und liefert theoretisch bei jedem Puls die aktuelle Geschwindigkeit. Dann kannst du auch fertige Encoder verwenden, im Selbstbau sind Toleranzen wie du sie wünscht nur schwer zu erreichen.

mfg

Besserwessi
20.10.2009, 21:50
Um die Drehzahl mit hoher Auflöung zu messen, zählt man nicht die Pulse, sondern mißt die Zeiten die zu den Pulsen gehöhren. Mit dem CNY70 sollte man die Flanken auf etwa 0,1 mm reproduzierbar hinbekommen. Wenn das Streifenmuster etwa 30 cm Umfang hat, hat man bei jedem Streifen eine Auflösung von etwa 1/3000 Umdrehung.
Selbst mit nur einem Streifen hätte man nach einer Umdrehung schon eine Auflösung von 1/3000 oder etwa 0,03%. Wenn man mehr Streifen hat kann man über mehr Werte mitteln und die nutzbare Auflösung sollte mit der Wurzel der Zahl der Streifen ansteigen.
Bei 33 U/min hat man eine lineare Geschwindigkeit von etwa 15 cm/s. Damit entspricht 0,1 mm Ortsauflösung etwa 1s/1500 = 0,7 ms Zeitauflösung. Die Zeiten zu den Flanken kann man digital im µC oder auch analog mit einem PLL Schaltkreis wie 4046 Problemlos verarbeiten.

gesamtplan
20.10.2009, 22:52
Herzlichen Dank für die vielen hilfreichen Tips. Die Zeitenmessung hört sich ziemlich interessant an. Da hätte ich auch selber draufkommen können. Hab ja schließlich schon mal was gehört davon ;-). Das Stichwort ist hier wohl Periodendauermessung.

Aber jetzt mal langsam zum mitschreiben. Derzeit werte ich meinen CNY70 mittels eines Timers aus welcher die Impulse zählt die am Interrupt in einer bestimmten Zeit x ankommen. Das ganze in Bezug auf die Impulse die auf der Drehzahlscheibe codiert sind gibt die Drehzahl in s min oder h.

Bei der zeitbasierten Messung müsste ich nun also die Zeit messen welche der Timer braucht um von einem Impuls zum nächsten zu kommen oder besser gesagt wie lange er von einem Interrupt zum nächsten zählt. Das ganze bezieht sich ja nun auf die Oszilatorfrequenz vom µC wenn ich das richtig verstehe?

Also für Blöde:
Timer zählt bei erstem Impuls 5
beim zweiten Impuls 6
beim dritten Impuls 4
beim vierten Impuls 7

Wenn ich das ganze in nem Array ablege und gleitend mittele müsste ja schließlich was rauskommen mit dem arbeiten kann bzw. auf was man die Regelung mehr oder minder scharf loslassen kann.

Zur Info: Ich hätte meine Encoderscheibe mit 54 Impulsen auf einem Durchmesser von 20 cm ausgestattet, könnte diese allerdings dann auch unabhängig von der Bezugsdrehzahl tun da ja nicht die Impulse messe sondern die Zeit dazwischen und es somit unerheblich ist, ob die Impulse eine "gerade" Frequenz ergeben.

Das klingt so als ob ich meinem Konzept wieder im Rennen wäre. Das heißt nur noch ein paar Tage Programmierarbeit, ein paar Tage mehr damits im Display gut aussieht und als SW für den Regler nicht auf die Impulse sondern die Zählerzahlen benutzen.


Vielen Dank ich glaub ich habs kapiert.