PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bekomme mehr Impulse als möglich



exaware
07.03.2010, 11:06
Hallo zusammen,

habe bei meinem Catwiesel die Encoderscheiben+Lichtschranke von Robotikhardware eingebaut. Aber ich habe ein komisches Problem. Die Scheibe hat ja laut Angabe nur 120 Impulse pro Umdreheung. ich bekomme dagegen über 300 Impulse pro umdrehung. Wie kann das sein?

PS: Also wenn ich die Interrupt-Eingänge entprelle, dann kommen auf jeden Fall weniger Impulse an. Aber ich denke Entprellen ist hier nicht das richtige.

Gruss
Cetin

021aet04
07.03.2010, 14:02
Hast du ein Oszilloskop? Könnte es sein, dass die Motoren Störungen verursachen? Schließe parallel zum Transistor einen Kondensator (bis ca 100nF).

MfG Hannes

exaware
07.03.2010, 14:50
Hast du ein Oszilloskop? Könnte es sein, dass die Motoren Störungen verursachen? Schließe parallel zum Transistor einen Kondensator (bis ca 100nF).

MfG Hannes

Ich habe keinen extra Transistor, ich benutze diesen Sensor: http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=71&products_id=135&osCsid=6ffc8e21b26eb2276aac13a862939bed

Ich habe hier Ausgang A und dazu den 90° verschobenen Ausgang B. Den Ausgang A habe ich direkt auf dem Interrupt-Eingang vom ATmega8. Die Motoren sind aber entstört, glaubst du wirklich dass die Motoren noch stören? habe leider kein Oszi.

021aet04
07.03.2010, 15:19
Der Sensor hat als Ausgang Transistoren. Das badeutet, das du am Ausgang (zw. GND und A bzw. B) einen Kondensator schaltest. Hast du einen Pullupwiderstand drinnen (Intern bzw extern)?

MfG Hannes

radbruch
07.03.2010, 18:05
Hallo

Der Sensor (Datenblatt PDF (http://document.sharpsma.com/files/gp1a038rck_e.pdf)) hat schon einen internen 10k-PullUp am Ausgang. Deshalb würde ich besser einen 4,7K oder gar 2,2K extern vorschlagen.

Wie man den maximal möglichen PullUp am Ausgang berechnen kann ist mir etwas unklar. Ich würde so ansetzen:

Testbedingung ist bei Eingangsstrom (IF) = 11mA und 1,3V Durchlassspannung (forward-voltage) (5V-1,3V)/0,005mA= 740Ohm, also ein 820er aus der E12er-Reihe als Vorwiderstand für den Sensoreingang. Dann sollte der Transistor am Ausgang durchgeschaltet sein, also Ausgang low.

Kleinster PullUp für den Ausgang wäre dann so zu Berechnen:
Ein Ausgang auf low hat bei 8mA IAusgang (IOL) eine Druchlassspannung von 0,4V (low level output voltage) Der gesammte Widerstand (mit internem PullUp!) wäre dann (5V-0,4V)/0,008mA=575Ohm. Unser gesuchter externer PullUp bräuchte dann 610Ohm [Rechentool (http://www.sengpielaudio.com/Rechner-parawid.htm)].

Ohne Gewähr würde ich deshalb sagen, der externe PullUp dürfte schon ca. 1k klein sein um möglichst die maximale Störsicherheit zu erreichen.

Welchen Vorteil die Kondensatoren bringen würden ist mir auch unklar.

Gruß

mic

kehrblech
07.03.2010, 18:34
Hallo,

ich benutze auch diesen Sensor und habe auch mehr Impulse als möglich. Ich bin mir jetzt nicht ganz sicher, ich glaube es waren 600 steigende Impulse pro Umdrehung. Am Anfang habe ich versucht das zu ändern, indem ich die Scheibe verschoben habe, aber es ging nicht anders.
Deshalb benutze ich den Sensor jetzt eben mit mehr Impulsen und es funktioniert super, ich kann mir nur nicht erklären, wie das möglich ist.

Gruß,
Jan

exaware
07.03.2010, 20:13
Hallo,

ich habe mal testhalber die internen Pullup dest Controllers an den Interrupt-Eingängen aktiviert. Also ich muss sagen, dass er ohne die Pullups genauer zählt. Werde mal demnächst es mit 2,2k oder 4,7k externen Pullups probieren. Theoretisch dürften entstörte Motoren ja nicht so arg stören, zumindest nicht so systematisch. Aber egal, da die Praxis meistens etwas anders aussieht, werde ich das mit dem Kondensator mal probieren. Ich habe auch das Gefühl, dass die Wiederholgenauigkeit nicht so hoch ist. Ich denke aber das liegt an meinen eierenden Scheiben.

Gruss
Cetin

021aet04
09.03.2010, 10:39
Ob es von den Motoren kommt kannst du leicht herausfinden, indem du die Motoren nicht einschaltest bzw einen Anschluss ablötest. Du musst dann die Scheibe mit der Hand drehen. Irgendwo eine Markierung machen, damit du weißt wann du eine Umdrehung hast. Ein kleines Programm schreiben und die Anzahl der Impulse auf einem Display ausgeben. Wenn du kein Display hast kannst du 3 Leds nehmen (<120Imp, 120Imp, >120Imp) oder mit etwas Toleranz, da du nicht 100%ig sicher sein kannst, dass du eine Umdrehung hast.

MfG Hannes

radbruch
09.03.2010, 11:09
Hallo

Ich habe mir das Bascom-Demoprogramm angeschaut. Es werden nur fallende Flanken ausgewertet, das sollte dann 120 Impulse pro Umdrehung ergeben, wenn die Scheibe 120 Schlitze hat.

Man kann aber auch beide Flanken auswerten, dann hätte man schon 240 Impulse und wäre damit deutlich näher an "ich bekomme dagegen über 300 Impulse pro umdrehung.". Vielleicht wäre Entprellen mit Software doch eine Lösung.

Gruß

mic

Richard
09.03.2010, 12:03
Ich habe mal ins Datenblatt geschaut, sieht beinahe so aus als wenn
die Lichtschranke schon intern beide Flanken auswertet also die doppelte
Pulszahl am Transitor ausgiebt? Habe mir allerdings nur die Bilder angeschaut
englich lesen (entziffern) mache ich nur im Notfall......

Gruß Richard

radbruch
09.03.2010, 12:31
Hallo

Die vier Fotodioden im Schema verwirren mich auch etwas. Ich vermute, je Kanal wird der Schlitz doppelt abgetastet. Das könnte allerdings ein Problem erzeugen, wenn die Kante vom Schlitz nicht auf der Achse der beiden Fotodioden liegt. Im Datenblatt (http://www.produktinfo.conrad.com/datenblaetter/175000-199999/185377-da-01-en-Gabellichtschranke_GP1A038RBK_L.pdf) (Unter Features Punkt 1!) und auch in der Artikelbeschreibung bei Conrad (http://www.conrad.de/ce/de/product/185377/) wird ausdrücklich darauf hingewiesen, dass der Sensor für linear angeordnete Schlitze in einem Band konzipiert ist! Daraus folgere ich: Die Schlitze sollten parallel zueinander sein. Auf einer Scheibe stehen sie aber in einem kleinen Winkel zueinander und können vielleicht deshalb von den doppelten Fotodioden nicht sicher erfasst werden.

Wichtig wäre dann, dass die gedachte Achse durch die beiden Fotodioden (X-X' im Datenblatt) genau auf dem Radius der Codescheibe liegt. Wenn das nicht der Fall ist, wäre das so, wie wenn das Schlitzband (in den Grafiken auf Seite 3 des Datenblatts) schräg durch den Sensor laufen würde.

Das ist aber reine Spekulation meinerseits...

Gruß

mic

Richard
09.03.2010, 13:35
Ich hatte das Posting schon abgeschickt als mir eingefallen
ist einmal einen Papierstreifen mit z.B. 10 schwarzen Strichen
durch den Sensor zu ziehen. Dann sollte man ja sehen können
was genau gezählt wird. Die Striche auf der Scheibe sind ja noch
halbwegs Parallel, ob das schon stört? Andererseits wenn darauf
extra hingewiesen wir, wird das einen Grund haben!

Gruß Richard