Mausrad auslesen

OP #2651962
Lesenswert?

Hi.

Wahrscheinlch stell ich mich grade nur ein bisschen dumm an, aber in 
ermangelung eines Oszis (heute grade raus zum Update), kann ich mir die 
Signale leider nicht mehr anschauen.

Wir haben hier eine Logitech B110. Bei der wollen wir die Lichtschranke 
vom Mausrad nutzen. Die Frage ist nun, was sitzt da für ein Sensor 
drauf? Und vor allem wie schließe ich ihm an, um ihn wie auszulesen.

Besten dank
#2652034
Lesenswert?

Marco Schulze schrieb:
> ja soweit komm ich auch noch, aber es muss ja ein optischer Drehgeber
> sein. Soweit ich das nachvollziehen kann, möchte ich behaupten, dass der
> eine Pin Sensors an Masse liegt, einer an Vdd und einer geht zum
> Mauschip.
so einfach auch wieder nicht!
auf der einen Seite hat du zwei Pin's für die Lichtquelle (IR-LED),
auf der anderen Seite drei Pin's für zwei Fototransistoren
-> ein gemeinsamer (meist Emitter) und für jeden Fototransistor einen 
(Kollektor)


Sascha
#2901160
Lesenswert?

Sorry, dass ich den Thread jetzt nochmal ausgrabe, hoffe das ist gerade 
noch im Rahmen. Ich stehe vor der selben Frage, hier mit einer Logitech 
M-BT58. Und von dem dreibeinigen Empfänger sind definitiv eins auf GND 
und eins auf +5V (na gut, +5V nach 1,5Ω).
Am dritten Pin, der zum Controller geht, scheinen bei Drehung Impulse 
gegeben zu werden, die sich möglicherweise je nach Richtung in der Länge 
unterscheiden? Leider kann ich das Signal bei "Abwärts"drehung mit 
meinem 1956er Oszi nicht auflösen, in der anderen Richtung sind die 
Impulse sehr deutlich.
Vielleich hilft es ja auch jetzt noch oder andersrum kannst Du 
vielleicht dieses Verhalten bestätigen. Evtl. handelt es sich ja um den 
selben/einen ähnlichen Sensor.
#2901171
Lesenswert?

...Quatsch...man sollte sich nur die Hände frei machen und das Entfernen 
der Einrastfeder ist auch praktisch, eine kontinuierliche Drehung 
hilft...

Bild #1 ist im Ruhezustand. Die Spitzen entsprechen den Pulsen, mit 
denen die LED angesteuert wird. Müsste ca. 4kHz sein, wenn mich nicht 
alles täuscht.

Bild #2 zeigt eine "Aufwärts"drehung mit Langen Impulsen am 
Sensorausgang, die jeweils einen Taktzyklus überdauern.

Bild #3 ist entsprechend die "Abwärtsdrehung" mit mäßig erkennbaren 
kurzen Impulsen auf dem gleichen Pegel wie die längeren in Bild #2.

Vielleicht könnte man einen Interrupt triggern lassen und im ISR den 
Pegel abfragen? Werde das bei Gelegenheit mal antesten.
Angehängte Dateien:
#2909921
Lesenswert?

Hach, dann antworte ich mir nochmal selbst, und wenn es nur der 
Dokumentation dient. Ich hoffe, es hilft jemandem, da die Informationen 
zu diesen Teilen im Netz echt spärlich zu sein scheinen, besonders im 
deutschsprachigen Raum. Schade eigentlich, die Dinger sind sehr 
zuverlässig und kompakt, verbrauchen nur einen GPIO-Pin. In den 
optischen Logitech-Mäusen befindet sich einer davon am Mausrad, in den 
Kugelmäusen kommen noch zwei für X/Y dazu, sind also auch in größeren 
Mengen sehr leicht zu beschaffen.

Nach anfänglicher Skepsis kam mir ein Verdacht, der sich dann hier 
bestätigt hat: http://forums.hackaday.com/viewtopic.php?f=4&t=2091 bzw. 
in der üblich blumigen Art beschrieben in dieser Patentschrift: 
http://www.google.com/patents/US6552716.pdf

Es handelt sich in der Tat nicht um einen einfachen 
doppel-Phototransistor, sondern um ein IC aus (vermutlich) vier 
Photodioden, Komparatoren, Flip-Flops und serieller I/O-Logik. Ein Puls 
an der IRED synchronisiert den Sensor, wenn dann der µC einen Takt am 
I/O-Pin liefert und anschließend hochohmig schaltet, liefert der Sensor 
die Bewegungsrichtung.

In einem Test war ich denn auch mit dieser Sequenz erfolgreich:
Zeit Aktion
 0   IRED an
 1   IRED aus
 2   Sensor als Ausgang auf 1
 3   Sensor als Ausgang auf 0
 4   Sensor als Eingang mit Pull-Up
 5   Sensor auslesen, er liefert den Wert "B"
 6   Sensor als Ausgang auf 1
 7   Sensor als Ausgang auf 0
 8   Sensor als Eingang mit Pull-Up
 9   Sensor auslesen, er liefert den Wert "A"
20   goto 0

Es gilt:
A B Bedeutung
0 0 Stillstand
1 0 Bewegung in Richtung A
0 1 Bewegung in Richtung B
1 1 schnelle Bewegung (soll wohl heißen in der zuletzt gemeldeten)

ein Zeitschritt = 12,5µS, so dass der Gesamtzyklus mit 4 kHz läuft. 
Timing etc. sind sicherlich optimierungsfähig, aber das hebe ich mir für 
später auf.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren