Forum: Mikrocontroller und Digitale Elektronik Optischer Sensor


von Thorben Torf (Gast)


Lesenswert?

Hallo zusammen,

erstmal würde ich gerne ein Lob an alle Teilnehmer der Community und an 
die Betreiber der Seite loswerden. Über die Jahre hinweg konnte ich hier 
immer was brauchbares lesen oder auch mal eine Frage stellen. Die 
Antworten waren stets von hoher Güte.

Diesmal geht es um einen kleinen Motor (Schrittmotor grösse ca. 1
x 0.5 cm) dessen Anzahl an Drehungen mit einem Sensor bestimmt werden 
sollen. Die grosse Herausforderung ist, dass das System so gut wie 
garnicht durch die Messung beeinflusst werden darf.
An dem Gerät selbst darf überhaupt nichts verändert werden.
Daher fallen Hall Sensoren oder magnetische Sensoren raus und die meiner 
Meinung nach einzige Methode dürfte ein optischer Sensor sein.

Bisher habe ich dazu folgende Gedanken. Ich bekomme am Ende der 
Motorwelle eine ca. 0.6 cm Durchmesser grosse Scheibe angebracht. Dazu 
reicht der Platz in dem sehr kleinen Gerät gerade aus. Wäre die Scheibe 
leicht genug könnte auch der Einfluss auf den Motor vernachlässigt 
werden.
Die Frage ist nun, kann eine solche kleine Scheibe zuverlässig 
ausgelesen werden und welche Art von optischen Sensor sollte hier 
verwendet werden?

von MaWin (Gast)


Lesenswert?

Thorben Torf schrieb:
> Die Antworten waren stets von hoher Güte.

Dann hast du wohl nicht viel gelesen.

Thorben Torf schrieb:
> so gut wie garnicht

In Zahlen ist das wie viel?

von Ron-Hardy G. (ron-hardy)


Lesenswert?

Dann würde ich mich in die Ansteuerung des Schrittmotors einklinken und 
Impulse zählen

: Bearbeitet durch User
Beitrag #7168357 wurde von einem Moderator gelöscht.
von Harald W. (wilhelms)


Lesenswert?

Thorben Torf schrieb:

> Die grosse Herausforderung ist, dass das System so gut wie
> garnicht durch die Messung beeinflusst werden darf.
> An dem Gerät selbst darf überhaupt nichts verändert werden.
> Daher fallen Hall Sensoren oder magnetische Sensoren raus

Warum sollten solche Sensoren Dein System beeinflussen?

von Irgend W. (Firma: egal) (irgendwer)


Lesenswert?

Thorben Torf schrieb:
> Wäre die Scheibe
> leicht genug könnte auch der Einfluss auf den Motor vernachlässigt
> werden.

Wenn du befürchtest das so ein hauchdünnes Alu-Scheibschen schon zu 
Schrittverlusten führt, was willst du damit überhaupt noch antreiben?

Schau dir einfach mal wie das die bei den käuflichen Lösungen so gemacht 
wird:
- 
https://www.digikey.at/de/articles/weighing-the-advantages-and-tradeoffs-of-encoder-technologies
- 
https://www.waycon.de/produkte/encoder-winkelgeber/messprinzip-encoder-drehgeber/
- https://de.wikipedia.org/wiki/Inkrementalgeber
- https://de.wikipedia.org/wiki/Lichtschranke
- https://www.google.de/search?q=drehgeber+funktionsweise&tbm=isch
- 
https://docplayer.org/1107525-Inkrementale-und-absolute-kodierung-von-positionssignalen-diffraktiver-optischer-drehgeber.html
- usw...

Dein größtes Problem wird wohl eher werden, dass du dafür überhaupt 
nicht genug Platz hast:-)

von Thomas F. (igel)


Lesenswert?

Thorben Torf schrieb:
> dessen Anzahl an Drehungen mit einem Sensor bestimmt werden
> sollen.

Nur ganze Umdrehungen oder höher aufgelöst? Welche Drehzahl?

> Ich bekomme am Ende der
> Motorwelle eine ca. 0.6 cm Durchmesser grosse Scheibe angebracht.

Geht: https://everlighteurope.com/optical-switch/253/ITR8307L24TR8.html


Einfach den halben Umfang der Scheibe schwarz anmalen, Rest in Alufolie.

von PittyJ (Gast)


Lesenswert?

Schau dir doch einfach mal das Drehrad in deiner Maus an. Da passiert 
das gleiche.

von Thorben Torf (Gast)


Lesenswert?

Danke erstmal für die Antworten.

Prinzipiell wäre das Auslesen des Ansteuersignals des Schrittmotors 
möglich würde aber nicht sicher die Anzahl an Drehungen des Motors 
beschreiben können. So z.B. durch Kräfte die von aussen auf den Motor 
wirken. Durch diese kann es auch z.B. zu Rückwärtsdrehungen der Welle 
kommen.
Der Sensor muss also rechts und links Drehungen der Welle sicher 
erkennen können.

Ich wollte eigentlich die Lösung recht offen lassen um zu Ideen zu 
kommen die mir bisher nicht kamen, aber ich denke inzwischen die Scheibe 
ist wohl die brauchbarste Lösung.

Auflösung einer 1/8 Drehung sollte ausreichen. Es wird kein Gitter 
möglich werden aufgrund des Platzproblems. Daher müssen die von der 
Scheibe reflektierten Photonen an einem optischen Sensor gemessen 
werden.
Ich dachte daher an unterschiedlich stark reflektierende Abschnitte der 
Scheibe.
Jemand Erfahrung mit etwas derartigem?

VG

von mIstA (Gast)


Lesenswert?

Thorben Torf schrieb:
> Der Sensor muss also rechts und links Drehungen der Welle
> sicher erkennen können.

Könnte mit nur einem (optischen) Sensor, der nur zwei Zustände 
unterscheiden kann, schwierig werden; vor allem wenn Du auch noch die 
Zahl der Umdrehungen bestimmen willst und die Geschwindigkeit auch noch 
variabel ist.

von mIstA (Gast)


Lesenswert?

Thorben Torf schrieb:
> Ich dachte daher an unterschiedlich stark reflektierende
> Abschnitte der Scheibe.

Du mußt zumindest drei verschieden stark reflektierende Abschnitte 
unterscheiden können, damit hat jeder aktuelle Abschnitt zwei 
verschiedene Nachbarn; daran kannst Du die Drehrichtung erkennen.
Wenn Du auch einer Auflösung von neuntel-Umdrehungen leben kannst, dann 
kommst Du mit 9 Abschnitten hin; wenns achtel-Umdrehungen sein müssen, 
dann brauchst Du 24 Abschnitte und kannst jedesmal beim Erreichen 
desselben Zustands um ein achtel weiterzählen.

von Helge (Gast)


Angehängte Dateien:

Lesenswert?

Früher mal sowas gebaut, aber nicht in ein Gerät mit nur 5mm Durchmesser 
:-)

Einfachster Encoder: Folie mit Laserdrucker bedrucken, ausstanzen. LED 
drunter und 2 Fototransistoren drüber.

von Wolfgang (Gast)


Lesenswert?

mIstA schrieb:
> Du mußt zumindest drei verschieden stark reflektierende Abschnitte
> unterscheiden können, damit hat jeder aktuelle Abschnitt zwei
> verschiedene Nachbarn; daran kannst Du die Drehrichtung erkennen.

Inkrementalgeber (2 Bit Gray-Code) wurden schon erfunden. Die kommen mit 
zwei Helligkeitspegeln aus.

Thorben Torf schrieb:
> Ich wollte eigentlich die Lösung recht offen lassen um zu Ideen zu
> kommen die mir bisher nicht kamen, aber ich denke inzwischen die Scheibe
> ist wohl die brauchbarste Lösung.

Das kannst nur du beurteilen. Hier kennt keiner deine geometrischen 
Verhältnisse.

von Frank K. (fchk)


Lesenswert?

Ich habe folgene Idee:

Du nimmst statt der der Scheibe ein Prisma. Also ein n-Eck mit 
verspiegelten Kanten. Dann nimmst Du eine kleine Laserdiode und richtest 
die auf die Kante des Prismas. Das Prisma wird den Laserstrahl 
reflektieren, wenn es sich dreht. Da, wo der Strahl hin reflektiert 
wird, bringst Du Fotodioden oder -Transistoren an (mindestens zwei). 
Durch die Auswertung, welche Fotodiode zuerst ausgelöst wird, erkennst 
Du die Drehrichtung.

Keine Ahnung, ob das bei Dir so machbar ist.

fchk

von Wolfgang (Gast)


Lesenswert?

Frank K. schrieb:
> Durch die Auswertung, welche Fotodiode zuerst ausgelöst wird, erkennst
> Du die Drehrichtung.

Die Drehrichtungserkennung setzt voraus, dass sich die von den beiden 
Photodioden erfassten Signale überlappen. Bei einer Laserdiode als 
Lichtquelle bräuchte man zusätzlich eine passende Strahlaufweitung.

von Uli S. (uli12us)


Lesenswert?

Nimm eine Scheibe ud papp hinten einen Stern mit abwechselnd hellen und 
dunklen Segmenten auf. Dann 2 Reflexlichtschranken z.B 
https://www.reichelt.de/de/de/reflexlichtschr-3-0mm-pcb-mt-eli-tr9904-p114342.html?r=1 
Anhand der Position der beiden lässt sich dann die Drehrichtung 
erkennen. Es sollte zwar auch mit Hallsensoren gehen, aber woher
will man einen so winzigen radial gepolten Magneten nehmen. Falls die 
Lichtschranken zu gross sind, bleibt wohl nur die Möglichkeit das mit 
ganz winzigen SMD Fotodioden zu machen, schon mal viel Spass beim 
richtigen auflöten.

von Harald W. (wilhelms)


Lesenswert?

Uli S. schrieb:

> 2 Reflexlichtschranken
> Anhand der Position der beiden lässt sich dann die Drehrichtung
> erkennen.

Aber nur, wenn sie einen genau eingestellten Abstand
von N + 1/2N haben

von Siegfried (Gast)


Lesenswert?

Thorben Torf schrieb:
> An dem Gerät selbst darf ÜBERHAUPT NICHTS verändert werden.
>
> Bisher habe ich dazu folgende Gedanken. Ich bekomme am Ende der
> Motorwelle eine ca. 0.6 cm Durchmesser grosse Scheibe angebracht. Dazu
> reicht der Platz IN DEM sehr kleinen Gerät gerade aus.

Erkennst du den Widerspruch?

von Wolfgang (Gast)


Lesenswert?

Harald W. schrieb:
> Aber nur, wenn sie einen genau eingestellten Abstand
> von N + 1/2N haben

Da muss überhaupt nichts genau eingestellt sein. Wichtig ist einzig, 
dass die Hell-Dunkel Übergänge bei den beiden Sensoren in der richtigen 
Reihenfolge kommen und man bei der Auswertung keinen der Zustände 
verpasst.

von Hermann S. (diphtong)


Lesenswert?

Naja, wenn das System überhaupt gar nicht beeinflusst werden darf, dann 
fällt doch die optische Variante mit Rad raus. Das Motörchen hat ja nur 
1 x 0,5 cm(!). Was sagt das Datenblatt zur Massenträgheit des Rotors? 
-Die wird mini sein. Das Rad wird zwar auch mini sein, aber ich denke du 
wirst das nie so klein und leicht hinbekommen, dass das bei der 
Motorgrösse nicht in der Dynamik bemerkbar ist.
Da fände ich die Anzapfung der Steuersignale schon besser. Vll. kann man 
sogar erkennen, ob es einen Schrittverlust gibt?!

Oder eine andere Idee...wenn du an der Antriebswelle irgendwo Platz 
hast, für eine kleine, polierte Fläche, die muss gar nicht gross sein. 
Vll. ist da schon was passendes vorhanden. Dann könnte man die Welle 
radial mit einem Laser anstrahlen, der Strahl wird dann durch den 
"Spiegel" abgelenkt. Jetzt bräuchte man nur noch einen Empfänger, der 
die Geschwindigkeit des Laserstrahls messen kann. Vll. irgendwas in der 
Art eines optischen Flow Sensors. Vll. kann man die Geschwindigkeit ja 
auch nur mit einem optischen Flow Sensor irgendwie messen?!

: Bearbeitet durch User
von Hermann S. (diphtong)


Lesenswert?

Also sowas in der Art, vll. könntest Du direkt einen 6-Kant auf die 
Welle polieren.
https://www.druckerchannel.de/cache_bilder/std/fs_bild_1711_0_le2729.jpg

von Hermann S. (diphtong)


Lesenswert?

"Eine weitere Möglichkeit besteht in der Messung des Gegenmagnetmoments 
des Motors. Bei einem Schrittverlust entstehen bestimmte Oberwellen, 
insbesondere die dritte Harmonische ist sichtbar. Damit ist es möglich, 
bereits einen drohenden Verlust im Vorhinein zu erkennen und 
gegenzusteuern, denn besser, als die Erkennung des erfolgten Verlustes 
ist dessen Vermeidung."

https://www.mikrocontroller.net/articles/Schrittmotoren#Schrittverlust

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.