PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Drehencoder als Schrittezähler



vklaffehn
19.04.2008, 21:14
Moin!

Ich kämpfe hier grad mit einem merkwürdigen Problem :
ich habe einen Drehencoder in ein Getriebe eingebaut, um die Umdrehungen des Getriebemotors zählen zu können (ein Zahnrad des Getriebes läuft jetzt nicht mehr auf der Achse, sondern auf dem Schaft des Encoders). Der Encoder kann 24 Impulse pro Umdrehung (STEC12E07 von Reichelt), Grey-Code ist erstmal uninteressant (?), da ich einfach nur mitzählen will, wie weit das Zahnrad sich gedreht hat. Der mittlere Pin habe ich auf Masse gelegt, und einen der anderen an PB2 meines Mega8. Den Pin habe ich als Eingang konfiguriert und den Pullup aktiviert, dann habe ich eine kleine Funktion geschrieben, die eigentlich warten soll, bis der Pegel an PB2 von High nach Low wechselt. Das sah auch erstmal ganz gut aus, allerdings drehte sich alles bei doppelter Motorspannung auch doppelt so weit, ich dachte da an prellenden Encoder oder so. Daraufhin habe ich mal alle Kabel (ISP, RS232, anderer Motor...) abgezogen und festgestellt, daß wenn ich jetzt nur Strom einschalte, der Encoder anscheinend gar nicht zählt. Zum Testen sollte er einen Step in die eine Richtung und danach einen Step in die andere laufen und anschließend anhalten, das ganze ist so langsam, daß man zuschauen kann. Schalte ich das ganze ein, so dreht sich der Motor ständig in die Anfangsrichtung, bis ich z.B. mit meinem Finger auf den Encoderpin und den Massepin fasse. Durchgemessen sind die Leitungen, irgendwie schafft es also der Encoder nicht, den Pin auf Masse zu ziehen? Testweise habe ich schon einen 100nf Kondensator zwischen Kontakt und Masse geschaltet, das hat aber überhaupt keine Auswirkungen. Hat jemand einen Tipp, was das wohl noch sein könnte? Ich bin irgendwie ein wenig ratlos.....

Danke!!

MfG
Volker

radbruch
19.04.2008, 21:32
Hallo


Der mittlere Pin habe ich auf Masse gelegt, und einen der anderen an PB2 meines Mega8.
So auf die schnelle kann man sich kein vernünftiges Datenblatt ergoogeln. Hast du mal die Spannung an dem Ausgangspin gemessen? Vielleicht kann man das Signal mit dem ADC auswerten. Allerdings würde ich das Teil eher zwischen Vcc und GND klemmen..

Das habe ich gefunden:
http://australia.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&R=2651739

Meinen die mit "Rotational Life" nach 100000 Umdrehungen ist Ende?

Gruß

mic

PICture
19.04.2008, 21:48
Hallo!

@ vklaffehn

Bei Störungsquellen (z.B. Motoren) sind die interne pull-ups meistens zu hoch und müssen kleinere externe angewendet werden. Man muss mit 5 bis 10 ms Prellungszeit rechnen.

MfG

vklaffehn
19.04.2008, 23:23
Moin!
@radbruch: Jau, ein Datenblatt habe ich leider auch nicht, allerdings mit Multimeter und langsamem drehen und fünf Händen habe ich feststellen können, daß das Ding beim Rasten jeweils einen der beiden äußeren Pins versetzt auf den mittleren schaltet, vermutlich halt grey code.

@PICture: Ok, ich werd mal einen externen Pullup einbauen, mal schauen, ob's was nützt :-)

Danke!

Mfg
Volker

vklaffehn
20.04.2008, 01:36
Moin!

Super, mit externem Pullup funktioniert alles wunderbar!!!! Videolink siehe meinen anderen Thread hier : https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=37010&start=44

MfG
Volker