Forum: Mikrocontroller und Digitale Elektronik Reflektive Encoderscheibe gesucht


von Stephan M. (stmz)


Lesenswert?

Hallo Zusammen,

ich bin auf der Suche nach einer reflektiven Encoderscheibe für 
folgenden Sensor: 
http://de.farnell.com/jsp/search/productdetail.jsp?CMP=i-ddd7-00001003&sku=1735258

Laut Datenblatt darf die "Specular Reflectance" für den schwarzen 
Bereich höchstens 10 betragen, für den weißen Bereich muss diese 
zwischen 60 und 85 liegen.

Daran dürfte wohl meine selbst ausgedruckte Encoderscheibe scheitern. 
Die schwarzen Bereiche sind schlichtweg noch zu reflektiv. Auch hat eine 
gefräste Scheibe in Aluminium mit schwarz lackierten Streifen keinen 
Erfolg gebracht.

Über Google finde ich leider keine passenden Angebote. Hat jemand einen 
Tipp?

Gruß
Stephan

von Achim M. (minifloat)


Lesenswert?

Stephan M. schrieb:
> gefräste Scheibe in Aluminium

Wäre das komplette Entfernen der schwarzen Bereiche eine Lösung?
Dann wird da sicher nichts reflektiert.
mfg mf

von Stephan M. (stmz)


Angehängte Dateien:

Lesenswert?

Hallo Mini Float,

Mini Float schrieb:

> Wäre das komplette Entfernen der schwarzen Bereiche eine Lösung?
> Dann wird da sicher nichts reflektiert.
> mfg mf

leider nein. Über dem Sensor befindet sich eine kleine Seiltrommel ...

Ich hab zur Veranschaulichung mal ein Bild angehängt. Der Sensor ist an 
der kleinen roten LED zu erkennen - er strahlt nämlich Licht im 
sichtbaren Bereich aus.

Gruß
Stephan

von Stefan (Gast)


Lesenswert?

Hallo,

wenn ich das auf deinem Bild richtig sehe hast du den Encoder falsch 
montiert !!!
Um 90 Grad drehen !!!

von Stephan M. (stmz)


Lesenswert?

Hallo Stefan,

bist du dir sicher? Auf Seite 6 des Datenblatts ist rechts unten das 
Encodergehäuse zusammen mit einer Encoderscheibe eingezeichnet. Hier 
wurde der Encoder längs der "Streifen" angeordnet.

Woher entnimmst du denn, dass der Encoder 90° falsch eingebaut ist?

Gruß
Stephan

von Achim M. (minifloat)


Lesenswert?

Stephan M. schrieb:
> leider nein. Über dem Sensor befindet sich eine kleine Seiltrommel ...

Wenn das hier nicht zutrifft:

Stefan schrieb:
> hast du den Encoder falsch montiert

Probier mal, den LED-Strom zu reduzieren.
1. bis du ein stabiles Signal bekommst(hoffentlich *). Strom "I1" 
notieren.
2. bis du wieder kein Signal mehr bekommst. Strom "I2" notieren.

Dann einen Strom um I = I2 + [a * (I1 - I2)] wählen.
Fausformelmäßiges a hab ich hier im Forum bei Gabellichtschranken so 70% 
bis 90% in Erinnerung.

mfg mf

PS: (hoffentlich *): wenn überhaupt kein Signal reinzubekommen ist, dann 
wirds wohl so sein wie Stefan gesagt hat.

von Stephan M. (stmz)


Angehängte Dateien:

Lesenswert?

Hallo Mini Float,

danke für deinen Beitrag. Ich werde später mal verschiedene Tests 
durchführen mit größerem LED Vorwiderstand. Der Encoder ist ziemlich 
sicher korrekt eingebaut - die Zeichnungen im Datenblatt erscheinen mir 
hier eindeutig zu sein.

Das Problem momentan ist, dass ich zwar Signale erhalte, diese jedoch 
von beiden Kanälen ziemlich genau übereinander liegen. Ich erkläre mir 
das so, dass das Aluminium derart stark reflektiert, dass im Grunde 
immer beide Sensoren gleichzeitig durchschalten.

Anbei noch eine Aufzeichnung mit dem Logic-Analyzer. Mit der Ausgabe 
kann ich natürlich nicht viel anfangen, geschweige denn die Drehrichtung 
bestimmen ;-)

Ich meld mich wieder, wenn ich meine Messungen durchgeführt habe!

Gruß
Stephan

von Achim M. (minifloat)


Lesenswert?

Noch nix gemessen? Häng doch nen alten Zweikanal-Oszi (oder zwei 
Diagnose-LEDs je mit 1k Vorwiderstand oder so) an den Sensor ran und 
lass den Motor (langsam) drehen. Alles im zusammengebauten Zustand.

Beim Sensor zwischen Vorwiderstand und Sende-LED einfach ein 1k-Poti 
o.Ä. einfügen und  bissl dran rumdrehen, so wie ich es oben beschrieb.
Die Widerstandswerte kannst du dann mit einem Multimeter ausmessen.
Gute Nacht, mf

von Andreas H. (Gast)


Lesenswert?

Für mich sieht das so aus, dass deine Encoderscheibe viel zu grob ist 
und die gesamte Geometrie der Anordnung nicht passt.

Das Datenblatt sagt zur Encoderscheibe, dass da 8,35 Linien pro mm drauf 
sein sollen, dass der Abstand von der Encoderscheibe zum Sensor maximal 
2,5 mm sein darf und dass der Encoder in 11 mm Abstand zum 
Wellenmittelpunkt montiert sein sollte.

Davon ist deine Seilrolle mit den eingefrästen Schlitzen meilenweit 
entfernt. Die geforderte Geometrie der Encoderscheibe wirst du weder mit 
Fräsen noch mit einem normalen Drucker zustandebringen.

von Andreas H. (Gast)


Lesenswert?

Ach ja, von wegen
>Über Google finde ich leider keine passenden Angebote.

Farnell hat auch Encoderscheiben von Avago im Angebot, die passende 
Scheibe für deinen Encoder wäre z.B.:

http://de.farnell.com/avago-technologies/heds-5120-i06/code-wheel-2channel-512cpr-1-4in/dp/1161175

Die ist zwar eigentlich nicht für reflektiven Betrieb gedacht, aber man 
kann ja auf der Rückseite eine schwarze Scheibe anbringen.

von Stephan M. (stmz)


Lesenswert?

Hallo Andreas,

stimmt: Die Encoderscheibe ist deutlich grober als es das Datenblatt 
empfiehlt. Was mir aber nicht ganz einleuchtet ist, warum das ein 
technisches Problem sein soll. Klar sinkt dadurch die Auflösung, 
allerdings sollte doch der Sensor mit seinen 4 Photowiderständen und 2 
Komparatoren große Striche genauso erkennen können, wie feine Striche. 
Schließlich sind die interessanten Bereiche nur die Übergänge. Ob die 
Sensoren anschließend längere Zeit gleichmäßig bestrahlt werden sollte 
nach meinem Verständnis egal sein.

Ich denke das Problem ist momentan der nicht saubere Übergang zwischen 
den einzelnen Segmenten und die zu hohe Reflektivität. Die schwarzen 
Segmente sind vertieft, dadurch kann natürlich das Aluminium an der Wand 
der Vertiefung seitlich reflektieren.

Oder habe ich irgendeinen Denkfehler und die Segmentgröße sollte doch 
entscheidend sein?

> Farnell hat auch Encoderscheiben von Avago im Angebot, die passende
> Scheibe für deinen Encoder wäre z.B.:

Gute Idee. Leider bekommen wir diese von der Größe her nicht eingebaut. 
Wir benötigen irgendeine flache Encoderscheibe.

Ich habe einen Hersteller gefunden, welcher individuelle Encoderscheiben 
herstellen könnte: 
http://www.pwb-encoders.com/products/encoder-wheels/technical-data

Werde einfach mal anfragen. Ansonsten führe ich nachher die LED-Tests 
mit höherem Vorwiderstand durch.

Gruß
Stephan

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Die meisten Videorecoder haben solche Encoderscheiben an den 
Wickeltellern ( geklebt ). Wenn du noch ne schrottige Kiste rumstehen 
hast , kannst du die ausschlachten :P

von Achim M. (minifloat)


Lesenswert?

Stephan M. schrieb:
> Ich denke das Problem ist momentan der nicht saubere Übergang zwischen
> den einzelnen Segmenten und die zu hohe Reflektivität. Die schwarzen
> Segmente sind vertieft, dadurch kann natürlich das Aluminium an der Wand
> der Vertiefung seitlich reflektieren.

Deswegen ergibt es schon einen Sinn, den LED-Strom reduzieren, da dann 
insgesamt weniger Licht zur Detektion zur Verfügung steht.
Zudem kannst du ja auch die "Wände" der Vertiefungen schwarz lackieren.



mfg mf

Andreas H. schrieb:
> Das Datenblatt sagt zur Encoderscheibe, dass da 8,35 Linien pro mm drauf
> sein sollen, dass der Abstand von der Encoderscheibe zum Sensor maximal
> 2,5 mm sein darf und dass der Encoder in 11 mm Abstand zum
> Wellenmittelpunkt montiert sein sollte.

Der minimale Abstand ist 11mm. Das mit der zu guten Auflösung ist 
erstmal kein Problem, nur leidet die Phasenverschiebung der beiden 
Signale darunter.

mfg mf

von Klaus D. (kolisson)


Lesenswert?

Hallo Autor: Stephan M. (stmz) ,
mir kommt dieser Sensortyp irgendwie bekannt vor.
daher glaube ich, dass du mit deiner Anordnung vollkommen daneben 
liegst.
Ich muss gleich mal in mein lager huschen und dir ein paar Fotos machen.
Ich habe nämlich noch eine passende Encoderscheibe und ein passendes
Gehäüse dafür.

Dann siehst du vielleicht, warum das nichts werden kann.

Gruss Klaus

von Stephan M. (stmz)


Lesenswert?

Mini Float schrieb:

> Deswegen ergibt es schon einen Sinn, den LED-Strom reduzieren, da dann
> insgesamt weniger Licht zur Detektion zur Verfügung steht.
> Zudem kannst du ja auch die "Wände" der Vertiefungen schwarz lackieren.


ich habe das jetzt mal getestet und verschiedene Vorwiderstände genutzt. 
Leider ohne Besserung. Im Gegenteil: Irgendwann zählt er einzelne 
Schritte mehrfach.


Klaus schrieb:

> Ich muss gleich mal in mein lager huschen und dir ein paar Fotos machen.
> Ich habe nämlich noch eine passende Encoderscheibe und ein passendes
> Gehäüse dafür.

das wäre super! Leider ist das Gebiet für mich noch Neuland. Wenn du mir 
hier einen passenden Denkanstoß geben kannst, wäre ich dir sehr dankbar 
:)

Gruß
Stephan

von Klaus D. (kolisson)


Angehängte Dateien:

Lesenswert?

Hallo Autor: Stephan M. (stmz),

ich war tatsächlich im KistenLager. Nur muss ich nun gestehen,
dass ich etwas anderes im Sinn hatte. Mein system ist leider doch
transmissiv. Anbei aber trotzdem ein Foto, weil so herumgeschrien habe.

Allerdings hat mich das ganze zum Nachdenken gebracht und ich finde
nunmehr dass Stefan(Gast) eigentlich richtigherum gedacht hat indem
er sagte:
"Hallo,

wenn ich das auf deinem Bild richtig sehe hast du den Encoder falsch
montiert !!!
Um 90 Grad drehen !!!"

Das genau solltest du tun. Stell dir diesen Sensor doch mal als
reflektive Lichtschranke vor.
die Dioden haben einen Winkel zueinander und eine Optik,
die es auf einen gewissen Abstand fokussiert.
Wenn Du diesen sensor nun quer nimmst hast du bei jeder Speiche deiner 
Felge
einen Vollreflex.
Wenn der Abstand zur Felge dann noch passt gibt es auch schöne 
Signalflanken.

Zudem musst du natürlich, wie schon gesagt wurde, auch den Diodenstrom
passend einstellen damit du zwischen Hell und Dunkel schöne
Unterschiede hast.

Gruss Klaus

von Wolfgang (Gast)


Lesenswert?

Klaus De lisson schrieb:
> Allerdings hat mich das ganze zum Nachdenken gebracht und ich finde
> nunmehr dass Stefan(Gast) eigentlich richtigherum gedacht hat indem
> er sagte:
>
> "Hallo,
> wenn ich das auf deinem Bild richtig sehe hast du den Encoder falsch
> montiert !!!
> Um 90 Grad drehen !!!"

Dann steht natürlich die Frage im Raum, warum im Datenblatt im Abschnitt 
"Encoder Orientation" steht: "The AEDR-8300-1Wx is designed such that 
both the LED and detector IC should be placed parallel to the window/
bar orientation, as shown."

von Stephan M. (stmz)


Lesenswert?

Hallo Zusammen,

danke für eure Antworten und natürlich auch das Foto!

Klaus De lisson schrieb:

> Das genau solltest du tun. Stell dir diesen Sensor doch mal als
> reflektive Lichtschranke vor.
> die Dioden haben einen Winkel zueinander und eine Optik,
> die es auf einen gewissen Abstand fokussiert.
> Wenn Du diesen sensor nun quer nimmst hast du bei jeder Speiche deiner
> Felge
> einen Vollreflex.
> Wenn der Abstand zur Felge dann noch passt gibt es auch schöne
> Signalflanken.

im Datenblatt wird der Einbau allerdings anders beschrieben. Im Prinzip 
ist es ja egal von welcher Seite aus das einfallende Licht auf die 
Dioden kommt - solange die Dioden korrekt angeordnet sind. Insgesamt 
sind vier Dioden verbaut, wobei zwei immer durch einen Komparator 
miteinander verschalten sind. Nach meinem Verständnis muss allein die 
Ausrichtung dieser Dioden korrekt sein.

Testweise habe ich den Sensor aber mal raus geholt, 90° gedreht und 
manuell das Segmentrad darüber bewegt. Nun hat der Sensor überhaupt 
keine Impulse mehr geliefert. Das würde mich darin bestätigen, dass das 
Problem nicht in der Ausrichtung des Sensors liegt.

Gruß
Stephan

von Klaus D. (kolisson)


Angehängte Dateien:

Lesenswert?

Auszug aus dem datenblatt

gruss k.

von Stephan M. (stmz)


Lesenswert?

Klaus De lisson schrieb:
> Auszug aus dem datenblatt
>
> gruss k.

und genau so ist mein Sensor auch angeordnet. Längs der Streifen.

von Klaus D. (kolisson)


Lesenswert?

zeig doch einfach mal deinen schaltplan

Gruss Klaus

von Stephan M. (stmz)


Lesenswert?

Klaus De lisson schrieb:
> zeig doch einfach mal deinen schaltplan
>
> Gruss Klaus

die zwei Kanäle des Sensors hängen direkt mit 10k-Pull-Down-Widerständen 
an den zwei INT0 und INT1 Eingängen eines Atmega88.

Mein Code:
1
void initTraps() {
2
3
  EIMSK |= (1<<INT0) | (1<<INT1);
4
  
5
  EICRA |= (1<<ISC01) | (1<<ISC00); //Steigende Flanke an INT0  
6
  EICRA |= (1<<ISC11) | (1<<ISC10); //Steigende Flanke an INT1
7
  
8
}
9
10
ISR(INT0_vect)
11
{
12
  
13
  if (( PIND & ( 1 << PIND3 )) != 0){
14
    iIntCounter++;
15
  }
16
17
}
18
19
ISR(INT1_vect)
20
{
21
    
22
  if (( PIND & ( 1 << PIND2 )) != 0){
23
    iIntCounter--;
24
  }
25
}

Ich hab natürlich auch schon daran gedacht, ob hier irgendwo der Fehler 
liegt. Darum habe ich gestern die Signale des Encoders direkt mit meinem 
Logic-Analyzer abgegriffen und ausgewertet. Mit dem aufgezeichneten 
Signalverlauf kann keine Elektronik / Software eine Richtung bestimmen. 
Weiter oben findest du auch ein Bild der Signalverläufe.

Ich kann daher mit sehr hoher Wahrscheinlichkeit sagen, dass das Problem 
nicht an der nachfolgenden Schaltung liegen kann. Der Sensor ist in der 
Ausrichtung so angeordnet, wie im Datenblatt beschrieben. Damit bleibt 
nur noch die Sensorscheibe als Verursacher übrig.

Oder ich übersehe irgendeinen Zusammenhang.

Gruß
Stephan

von Klaus D. (kolisson)


Angehängte Dateien:

Lesenswert?

beides häst du nicht ein.
Am besten du kaufst dir eine simple Reflexlichtschranke.

http://www.strippenstrolch.de/1-2-12-der-reflexkoppler-cny70.html

Gruss k.

von Stephan M. (stmz)


Lesenswert?

Klaus De lisson schrieb:
> beides häst du nicht ein.
> Am besten du kaufst dir eine simple Reflexlichtschranke.
>
> http://www.strippenstrolch.de/1-2-12-der-reflexkoppler-cny70.html

nur kann ich mit einer simplen Reflexlichtschranke keine Richtung 
bestimmen. Das aber genau benötige ich ;)

Dass ich die Werte aus dem Datenblatt für die Segmentscheibe nicht 
einhalte weiß ich. Genau deshalb bin ich ja auf der Suche nach einer 
neuen und passenden Segmentschreibe ;)

von Klaus D. (kolisson)


Lesenswert?

Stephan,
irgendwer wird doch den Motor betreiben (ansteuern).
dann kannst du messen, wo gerade plus ist und du kennst die Richtung.
Ich denke, dass es mit Quadraturauswertung nur klappt, wenn du den
Abstand zum Sensor exact einhältst und auch die Dimensionen deiner Bars
im Ramen der Specs liegen.

Druck dir im Zweifel doch einfach so ein Wheel auf Transparenfolie
und klebe eine Alufolie als Spiegel dahinter. Auch ein Gehäse eines
Teelichtes sollte sich eignen.

Dann den Diodenstrom mit einem Poti regeln bis die Spannungen zu den
Int Eingängen passen.

Klaus

von Stephan M. (stmz)


Lesenswert?

Hallo Klaus,

Klaus De lisson schrieb:

> irgendwer wird doch den Motor betreiben (ansteuern).
> dann kannst du messen, wo gerade plus ist und du kennst die Richtung.

das war auch meine allererste überlegung. Allerdings läuft der Motor 
auch nach Abschaltung des Stroms nach. Hier könnte ich natürlich 
auswerten, in welche Richtung der Motor zuvor lief. Wie verfahre ich 
aber bei einem Richtungswechsel des Motors? Woher weiß ich denn ab wann 
der Motor tatsächlich seine Drehrichtung geändert hat?

Die einzige Möglichkeit wäre es den Motor auf Stillstand zu bringen (... 
warten bis keine Impulse mehr erzeugt werden) und anschließend die 
Motorrichtung ändern.

Mehr oder weniger durch Zufall bin ich dann auf die anderen Sensoren 
gestoßen. Das würde mir halt einige Probleme ersprachen - auch könnte 
ich die Bewegung der Seiltrommel ermitteln, wenn der Motor nicht läuft. 
Das muss nämlich ebenfalls berücksichtigt werden (wobei hier die 
Richtung im Prinzip festgelegt wäre ...).

Also wenn ich keine passenden Encoderscheiben her bekomm, werde ich mir 
eine Alternative überlegen.

Gruß
Stephan

von Klaus D. (kolisson)


Lesenswert?

.. oder kauf dir einen kompletten gekapselten Encoder

Klaus

von Wolfgang (Gast)


Lesenswert?

Stephan M. schrieb:
> nur kann ich mit einer simplen Reflexlichtschranke keine Richtung
> bestimmen.

Dann nimm zwei, die um (4n+1)/4 deines Kodierscheibenrasters versetzt 
montiert sind. Eine LED und zwei PD sollten es auch tun.

von Stefan (Gast)


Lesenswert?

Stephan M. schrieb:
> die zwei Kanäle des Sensors hängen direkt mit 10k-Pull-Down-Widerständen
> an den zwei INT0 und INT1 Eingängen eines Atmega88.

Du hast im Datenblatt schon gesehen dass bei Pull-Down die Ausgänge
nur einen Strom von -0,2 mA liefern (Seite 4  3.Zeile von unten)

Pull-Up ist mit 8mA besser !!!

von Stefan (Gast)


Lesenswert?

Nachtrag:
Ich muss mich präziser ausdrücken:

Mit einem Strom von -0,2 mA bei High-Output (Seite 4  3.Zeile von unten)
besitzt die Reflexlichtschranke quasi einen Open-Kollektor 
(Open-Drain)-Ausgang. In dem Fall kann bei Belastung ohne Pull-Ups 
Blödes passieren. Z.B. dass beide Ausgänge low sind obwohl einer der 
beiden high sein sollte und so weiter. Verhalten ist völlig unbestimmt 
!!!

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.