Odometrie mit Lichtschranke

paddy

Active member
Hallo zusammen,

nachdem ich unter PCB 1.2 die Odo nie ans laufen bekommen habe, versuch ich mein Glück mit 1.3 nochmal.
Dazu habe ich das Counting Modul aus dem Shop wieder angeschlossen. Der Mower ruckt und zuckt (Einstellungen wurden angepasst), aber fahren geht so nicht. Habe zur Sicherheit nochmal den Odo-Teiler nachgelötet, hilft aber nicht.

Nun habe ich an den PID Werten gedreht (P deutlich reduziert), damit wurde es besser. Allerdings fährt der Mower jetzt immer eine schöne Rechtskurve. Mir ist aufgefallen, dass ich unterschiedlich viele Ticks je Rad erhalte. An beiden Motorachsen ist die gleiche Odometrie-Scheibe angebracht, beide Motoren sind identisch. Am PCB ist auch bei beiden der gleiche Odometrie Teiler verlötet (/2).

Das Counting Modul ist mit einem Logik-Komparator ausgestattet, man kann beid eKanäle per Poti einstellen. Habe versucht, das Problem damit zu beheben, war aber auch kein Erfolg.

Meine Frage, hat jemand das Modul erfolgreich im Einsatz? Meines ist ein paar Jahre alt, vielelicht wurde früher ein anderes Verkauft als heute? Ich überlege nun, ob ich nicht einfach den Logik Komparator raus lasse und über eine kleine Lochrasterplatine die eigentliche Lichtschranke direkt an den Due klemme.

Hier bin ich mir mit dem Schaltplan aber nicht sicher. Die PCB der Lichtschranke haben drei Anschlüsse, VCC (In) GND und Out. So wie ich es sehe, haben die beiden Dioden gemeinsames GND. Ich stelle mir das so vor, dass ich 5V über einen Widerstand an die 1,2V der IR LED anpasse. Damit kann ich diese schon mal direkt an dem PCB betreiben.
Unsicher bin ich mir mit dem Empfänger. Kann ich hier einfach den Eingang des PCB direkt mit Out verbinden? Wenn ich für den Pin den Pullup Widerstand aktiviere, müsste ich doch bei einer Verbindung über die Photodiode zu GND einen Signalwechsel erhalten? Brauche ich hier noch einen Widerstand zur Strimbegrenzung oder einen Spannungsteiler?

Hat vielleicht jemand einen Anschlussplan für "normale" Gabellichtschranken?
 
Unsicher bin ich mir mit dem Empfänger. Kann ich hier einfach den Eingang des PCB direkt mit Out verbinden?
Das hängt davon ab ob du einen open collector Ausgang hast. Wenn ja kannst du den Ausgang an den Pin klemmen und den Pullup am pin einschalten.
Falls da 5V an den Ausgangstransistor geschaltet sind, wirst du einen Spannungsteiler brauchen und der Pullup wird nicht benötigt.
Es kann allerdings sein, dass du mit der Galbellichtschranke nicht genug Impulse erzeugst für die Software. Was Azurit für eine einwandfreie Funktion benötigt weiß ich nicht. Die Motoren aus dem Shop liefern 1060 Impulse pro Radumdrehung.
 
Hallo Roland,

genau weiß ich nicht, was ich da habe. Ich denke, am sichersten ist es, wenn ich einfach eine Lichtschranke ohne PCB aus der Bucht nehme. Da kann ich dann anschließen, wie ich es brauche. Also bei der LED einfach einen Vorwiderstand und auf Seite der Photodiode direkt an den Pin.

Ich habe eine Lochscheibe mit acht Schlitzen, die an der Motorwelle sitzt. Ich weiß nicht genau, wie viele Umdrehungen der Motor macht, aber da ich an der Motorwelle und nicht an der Abtriebswelle vom Getriebe platzieren kann, werden es genug Ticks sein. Ich rechne mit ca 700, das hat schon mal jemand hier mit dem Motor geschafft.
 
Hallo,

ich möchte das Thema mal kurz abschließen, falls jemand es auch noch sucht.

Die Lichtschranke vom Counting Modul aus dem Shop habe ich doch nicht verwendet. Statt dessen habe ich zwei Gabellichtschranken (LTH-301-32) genommen.
Zuerst habe ich es nach dem Schaltplan aus dem Wiki gebaut (http://wiki.ardumower.de/index.php?title=Wegmessung_(Odometrie))

Man hat damit einen Pullup Widerstand an der Photodiode. Das führt aber dazu, dass der Pegel zwischen 5,01V und 4,78V pendelt (bei mir). Der Arduino Pin hat auch bereits einen Pullup Widerstand aktiv, somit kann kein Flankenwechsel erkannt werden.

In der Software habe ich dann den Pullup Widerstand deaktiviert, es waren am Pin dann aber trotzdem 5V zu messen. Entweder bewirkt der Interrupt dass der Pulllup Widerstand trotzdem aktiviert wird, oder er ist auf dem Board auch nochmal verbaut.

Letztlich habe ich nun die Photodioden direkt zwischen dem Pin und GND geklemmt, ohne irgendwelche Widerstände. Damit habe ich an einer Lichtschranke Werte zwischen 4,78V und 2,3V messen können. Das reicht für den Flankenwechsel zu erkennen.
Bei der zweiten Lichtschranke hatte ich aber als niedrigsten Wert immer noch 2,7V, was der DUE noch als High gesehen hat. Lösen konnte ich es auf dieser Seite, indem ich einen 10K Widerstand zwischen Pin und GND platziert habe. Damit werden jetzt beide Seiten korrekt erkannt.

Der Mower war gestern zum ersten Mal überhaupt knapp 1h mit Odometrie unterwegs. Hat zwar hier und da schon kräftig geruckt, aber er lief. Er fährt auch keine großen Bögen mehr sondern hält halbwegs die Spur.

Nun habe ich ein neues Odometrie Problem, dafür mache ich aber ein neuen Thread auf :)
 
Oben