Archiv verlassen und diese Seite im Standarddesign anzeigen : Gabellichtschrankenschaltung
Hi!
Ich hab eine alte Maus gefunden, und würde gerne die darin enthaltenen Gabellichtschranken benutzen.
Die Maus ist eine Logitech 459C.
Ich würde mich freuen wenn einer eine passende Schaltung, zum zählen der Impulse, kennt.
MFG
Rasmus
Matthias
11.06.2004, 12:14
Mann nimmt nen 74 94er und häng die Gabellichtschranke dran. ab und zu Liest man mit dem µC den Wert des Zählers aus und resettet ihn.
In der Maus-Gabellichtschranke sind zwei Lichtschranken (pro Bewegungsrichtung) einem Gehäuse integriert, die phasenverschobene (180°) Impulse abgeben weil sie etwas versetzt angeordnet sind. Insgesamt also vier Lichtschranken pro Maus.
Um mit einer Maus-Gabellichtschranke nicht nur eine Wegstrecke messen zu können, sondern auch die Bewegungsrichtung erkennen zu können reicht ein Zähler-IC (z.B. 7494) allein nicht aus. Du musst die beiden Impulsreihen gleichzeitig auswerten. Dazu gibt es sog. Quadraturencoder-Chips. Ich glaub' ich hab' irgenwo noch ein paar rumliegen. Der Quadraturencoder hat zwei Eingänge, nämlich die beiden phasenverschobenen Impulsreihen und zwei Ausgänge: ein Richtungssignal und einen Ausgang für die zu zählenden Impulse.
Matthias
11.06.2004, 13:19
Ich dachte es wird nur die Strecke und nicht die Richtung gebraucht.
Wie heißt den dieser Quadraturencoder-Chips???
Und dieser 74 94er zählt der Automatisch die gesamten Impulse???
Und wie geibt er sie dann aus? seriel?? parallel???
Matthias
11.06.2004, 13:46
Parallel. Der 7494 ist ein zähler.
Wenn ich die Maus so lasse, müsste ich doch nur das PS2 Signal so umwandeln, das ich es mit einem AVR auswerten kann.
Leider kenne ich keinen passenden IC .
MFG
Rasmus
Dieses IC steckt häufig in Mäusen. In dem Datenblatt ist die Schnittstelle zu den Gabellichtschranken beschrieben und die Codes, die die Maus zum PC schickt bzw. von diesem empfängt.
http://nexus.cs.usfca.edu/~cruse/cs630/em84502.pdf
Oft meint man, die Maus würde nur zum PC senden. Stimmt aber nicht, sie empfängt auch vom PC bestimmte Codes. Blöderweise auch noch über ein- und dieselbe Leitung. Ich glaube, es ist wirklich einfacher, nur die Doppel-Lichtschranke zu verwenden. Ich schau mal, ob ich das 8-polige Encoder-IC noch finde. Die Eingänge kannst du direkt mit der Lichtschranke verbinden und die Ausgänge an einen auf-/abwärts Zähler anschließen. Ich schon mal so was gebaut. Das größte Problem dabei waren übrigens die Spikes, die in der Leistungselektronik von Relais und anderen Störenfrieden erzeugt wurden. Das Zähler-IC (ich glaube es war ein 74..193) hat sie manchmal mitgezählt. :-s Der 74..94 ist übrigens ein Schieberegister und zum zählen von Impulsen nicht geeignet. :-k
und so funktioniert das PS/2 Maus-Protokoll
http://www.enseirb.fr/~nouel/coursvhdl/projets/souris/souris.pdf
Ich habe das gleiche auch auf englisch, allerdings nur auf Papier. Die Seite, die ich mir vor einiger Zeit ausgedruckt habe existiert inzwischen leider nicht mehr im WWW :cry:
Das ist wirklich sehr kompliziert.
@avatar
Da du es schon mal gebaut hast, könntest du mir nicht den Schaltplan zuschicken?
Ich möchte das ganze zur Positionsbestimmung benutzen.
Meint ihr das Das genau genug ist?
MFG
Rasmus
Die Genauigkeit hängt nicht nur von der Mess-Elektronik ab, sondern in erster Linie von der Mechanik. Um die Messgenauigkeit zu berechnen, musst du einfach die maximal zu messende Wegstrecke durch die Anzahl der Impulse dividieren, die die Gabellichtschranke beim messen dieser Strecke liefern würde.
Ist dir die Genauigkeit zu gering, kannst du versuchen, durch einen anderen mechanischen Aufbau, die Genauigkeit zu erhöhen (Übersetzung mit Zahnrädchen oder ähnlichem) so dass eben mehr Impulse pro Wegstrecke geliefert werden. Der Zähler muss dann so dimensioniert werden, dass er im worst case nicht überläuft. Das geschieht einfach durch Kaskadierung mehrerer Zählstufen.
Hallo "Gast" von gestern 12:35 Uhr:
Hier die Antwort wegen deiner Anfrage zu dem Encoder-Chip.
Er heißt LS7084 Datenblatt: http://www.lsicsi.com/pdfs/LS7083_84.pdf
An den Eingängen vom LS7084 (zweite Abb.von oben) Pin 4 und 5 schließst du die beiden Ausgänge von deiner Gabellichtschranke an. Die Ausgänge vom LS7084 kannst du entweder direkt mit deinem µC verbinden (wobei ich Pin8 an einen interruptfähigen Eingang anschließen würde) oder du gibst die beiden Ausgangssignale auf einen Zählerbausten (74190 oder 74191).
LS7084(8) mit 74190(14) verbinden
LS7084(7) mit 74190(5) verbinden
Die Zähler-IC's 74190 und 74191 sind kaskadierbar
Datenblatt: http://focus.ti.com/lit/ds/symlink/cd74hct191.pdf
Es soll auch schon Leute gegeben haben, die versucht haben, die beiden Ausgänge der Gabellichtschranke A und B (Signalform s. Datenblatt LS7084) einfach direkt mit dem µP zu verbinden. Das geht natürlich auch. Die Richtungserkennung und das auf- und abzählen kannst du auch per Software realisieren. Gerade die Richtungserkennung ist ein bisschen knifflig. Da schleicht sich leicht der eine oder andere Bug ein. Bei hohen Fahrgeschwindigkeiten und womöglich einem langsamen Prozessor kommt man rasch an die Grenzen. Da ist eine Hardwarelösung mit Encoder- und Zähler-IC die bessere Lösung und der µP hat den Kopf frei für wichtigeres.
--------------------------------------------------------------------------------
Wie heißt den dieser Quadraturencoder-Chips???
Und dieser 74 94er zählt der Automatisch die gesamten Impulse???
Und wie geibt er sie dann aus? seriel?? parallel???
also nochmal:
Der Encoder-Chip heißt: LS7084
Datenblatt: http://www.lsicsi.com/pdfs/LS7083_84.pdf
Wenn du an diesen Encoder-Chip einen 74190 oder 74191 anschließst kannst
du richtungsabhängig vor- und rückwärts zählen, je nach Bewegungsrichtung
durch die Gabellichtschranke.
Wenn die Bewegungsrichtung nicht von Interesse ist, kannst du dir den
Encoder-Chip sparen und brauchst nur eine der beiden Empfangsdioden von
der (Maus-)Gabellichtschranke an
den Eingang vom Zähler (74190 oder 74191) anzuschließen.
Der 74190 zählt von 0 bis 9 und der 74191 von 0 bis F (=15)
Beide Zähler haben parallele Ausgänge und sind kaskadierbar
@avatar
Danke nochmal!
Das System ist sehr einfach.
Doch ich kann mir vorstellen das die Position nach einigen Meter stark von der wahrhaftigen Position abweicht.
Was meint ihr?
MFG
Rasmus
Als Anmerkung noch zu Anzahl der Impulse und Richtung:
Die 2 Lichtschranken werden nicht um 180°, sondern um 90° versetzt sein.
Dann hat bei der Flanke der einen die andere immer den entsprechenden Zustand up oder down und ein 4516 kann mit den Signalen clock und up/down beschaltet werden. Das wäre die elementare Lösung.
4510 ist ähnlicher Zähler nur BCD
http://www.doctronics.co.uk/4510.htm
Sorry, hast vollkommen Recht. Es sind natürlich 90° und nicht 180. Wenn ein Fensterchen von der Codierscheibe durch die Lichtschranke läuft, entstehen vier Schaltflanken und zwar zwei positive und zwei Negative. Wenn du den Decoder-Chip im "x4-Mode" betreibst, dann dann erzeugt er aus jeder der vier Schaltflanken einen Zählimpuls, also vier Zählimpulse pro Fenster im Mausrädchen. Da kann man die Position schon sehr genau erfassen.
Wenn trotzdem nach einigen Metern Abweichungen entstehen, dann wird es sicherlich nicht an der Elektronik liegen, eher an der Mechanik. Wenn du die Bewegung z.B. mit der Mauskugel erfassen willst, kann schon mal was rutschen oder so. Außerdem hat die Kugel relativ viel Spiel.
@RobotXY: Vielleicht solltest du mal überlegen, das Mausrädchen über einen Seilzug mit Umlenkrolle oder mit Zahnrädchen anzutreiben. Keine Ahnung wie das Maschinchen aussieht, das du dir da baust.
Mein Bot fährt später mit zwei RB35 Motoren.
Die MC Elektronik und die Motosteuerung ist schon fertig.
In den nächsten Tagen werde ich das Gestell bauen.
Wenn die Reifen rutschen, wird Position aber langsam immer ungenauer.
MFG
Rasmus
Ja genau. Ich nehme an, dass du die Codierscheibe (das Rädchen aus der Maus) auf der Achse befestigen willst oder? Eine weitere Fehlerquelle, die zu Messfehlern bei der Positionsbestimmung führen können, sind Spikes, die z.B. von den Motoren kommen können und von der Zählschaltung ebenfalls mitgezählt werden. Insbesondere wenn du hochohmige und damit empfindliche CMOS-IC's verwendest. Das hat mich bei meinem Projekt fast zur Verzweiflung gebracht.
Die Mäuse neuerer Bauart haben keine beweglichen Teile mehr sondern einen CCD-Chip mit dem sie den Untergrund optisch abtasten. Mit so einem Teil könntest Fehlmessungen wegen durchdrehender Räder vermeiden.
@Avatar
Wie genau muss die Optische Maus sein?
Wo liegen in dem System(Optische Maus) eventuelle Fehlerquellen?
Dann brauch man doch auch einen IC, der das Signal der Maus Umwandelt, oder?
MFG
Rasmus
Schau mal:
http://home.tele2.it/marthal/C-Control/
_________________________________
http://www.free-webspace.biz/update/
@robotxy: Ein solches IC gibt es tatsächlich
- > http://cp.literature.agilent.com/litweb/pdf/5988-8477EN.pdf
Als mögliche Fehlerquelle könnte ich mir bei dieser Lösung in erster Linie Verschmutzung der Linse vorstellen wenn du über dreckigen Untergrund fährst.
@RCO: Diese Software, die die Signale der Doppellichtschranke direkt auswertet (ohne vorgeschalten Decoder) scheint mir nicht ganz ausgereift. Sie funktioniert nur dann, wenn die Bewegungsrichtung nicht oft wechselt. Wenn du am Rädchen nur leicht hin- und her wackelst und zwar so, dass diejenige Lichtschranke, die als hier zur Richtungserkennung dienen soll nicht schaltet sondern immer nur die andere, dann wird das Programm eine fortwährende Bewegung in die selbe Richtung registrieren obwohl in Wirklichkeit immer abwechselnd nur ein Schritt vor und zurück gemacht wird, also ein "auf der Stelle treten".
Kann sein, so genau hab ich mir das nicht angeguckt
wolf4124
23.08.2004, 17:22
Hallo
Weiß jemand, wo man diesen LS7084 bekommt.
Ich finde ihn nirgends
BlueNature
24.08.2004, 07:16
Hallo Matthias!
Es gibt einen Trick wie man das 90°-Signal der Maus decodieren kann in der Richtung. Das ist bereits mit einem einfachen Vorwärts-Rückwärts-Binärzähler möglich (z.B. SN74LS192 / SN74LS193). Das A-Signal legt man an den Clock-Eingang der ja flankengetriggert ist und das B-Signal an den Richtungseingang. Die kleinen Zählerbausteine haben nur 4 Bits (also 0 bis 15). Die kann man aber einfach kaskadieren auf 8 Bits (0-255) und so weiter. Die Ausgänge des Zählers kann man jetzt einfach abfragen und auswerten. Bei einer Drehung in die eine Richtung zählt es jetzt aufwärts und bei einer Drehung in die andere Richtung wieder abwärts.
Um die Lichtschranken auszuwerten braucht man einen Widerstand in Reihe als Spannungsteiler. Das sind meist 1k gegen Masse und danach einen Schmitt-Trigger Baustein in Form eines Inverters (z.B. SN74LS14).
Grüsse Wolfgang
@BlueNature:
Das funktioniert aber mehr schlecht als recht !
Wenn das Taktrad an einer Position hin und her wackelt, und zwar so, dass das B-Signal (was du als Richtungssignal verwendest) sich nicht ändert, das A-Signal (in deiner Schaltung: Clock) aber dauernd an und aus geht, dann hast du eine Situation, dass der Zähler ständig in eine Richtung zählt obwohl in Wirklichkeit das Taktrad nur hin und her vibriert.
Deine Methode funktioniert zwar prinzipiell, ist aber höchst ungenau. Ohne einen sauber arbeitenden Quadraturencoder, der auch diese Sonderfälle berücksichtigt, wirst du keine präzisen Messungen machen können.
Viele Grüße
Hallo zusammen!
Also ich finde die Idee mit der optischen Maus richtig gut.
Ich denke mal, dass die Genauigkeit für die meisten An-
wendungen ausreichen dürfte.
Die Frage ist nur, wie nah die Linse am Boden sein muss.
Denn bei der Maus ist die Linse ja nur 1-2 mm über dem
Tisch. - Beim Roboter dürfte das problematisch werden...
Hat jemand da schon Erfahrungen gesammelt oder ein
paar gute Ideen?
Viele Grüße,
Simon
BlueNature
24.08.2004, 16:34
@BlueNature:
Das funktioniert aber mehr schlecht als recht !
Wenn das Taktrad an einer Position hin und her wackelt, und zwar so, dass das B-Signal (was du als Richtungssignal verwendest) sich nicht ändert, das A-Signal (in deiner Schaltung: Clock) aber dauernd an und aus geht, dann hast du eine Situation, dass der Zähler ständig in eine Richtung zählt obwohl in Wirklichkeit das Taktrad nur hin und her vibriert.
Deine Methode funktioniert zwar prinzipiell, ist aber höchst ungenau. Ohne einen sauber arbeitenden Quadraturencoder, der auch diese Sonderfälle berücksichtigt, wirst du keine präzisen Messungen machen können.
Genau das hab ich bei mir gemacht. Eine PS/2-Maus auseinandergenommen, einen Schaltplan gezeichnet, die Elektronik umgesetzt auf eine eigene Platine und das PS/2-Protokoll nachbebildet mit einem Microcontroller um die aktuelle Position der beiden Mausachsen auszulesen. Das geht bestens mit den orginalen Lichtschrankenelementen und einem eigenen Geberrad für die 90°-Impulse.
Grüsse Wolfgang
moin moin,
Im Moment ärgere ich mich mit demselben Problem rum:
Wie bekomme ich die PS2-Maus vom AVR eingelesen.
Gegenüber der Variante mit zusätzlicher Zählelektronik, die hier diskutiert wurde, hat das in meinen Augen den Vorteil, dass es billiger ist und weniger Leitungen des AVR benutzt.
Eigentlich ist das Protokoll nicht soooo kompliziert, aber ich komme zZt nicht mal soweit Clock-Signale empfangen zu können. Ich habe den Verdacht, dass es Probleme mit den Signallevel bzw. mit den Pullup-Widerständen gibt. Leider habe ich kein Oszi um das zu prüfen...
Hat da jemand Erfahrungen und / oder C-Quellcodes ?
ciao ... Bernd
Hallo BlueNature!
Ich halte deine Variante eigentlich ehrlich gesagt auch für einfacher.
Prinzipiell dürfte es doch reichen, die CLK und die DATA Leitung des
ICs mit meinem Microcontroller zu verbinden, oder?
Kannst du vielleicht noch mal kurz erklären (evtl. mit einem kurzen
Codebeispiel) wie die prinzipielle Kommunikation mit dem IC dann
funktioniert? Das ist mir nämlich auch noch nicht wirklich klar...
Ciao,
Simon
BlueNature
27.08.2004, 06:52
Ich halte deine Variante eigentlich ehrlich gesagt auch für einfacher. Prinzipiell dürfte es doch reichen, die CLK und die DATA Leitung des ICs mit meinem Microcontroller zu verbinden, oder?
Das geht gut. Brauchst nur einen Controller der seinen digitalen Port umschalten kann als In oder Out. Die Pull-Up's muss man ausprobieren. Die orginalen waren zu niederohnig auf der PS/2-Maus. Bei mir sind es nun 6k8.
Kannst du vielleicht noch mal kurz erklären (evtl. mit einem kurzen
Codebeispiel) wie die prinzipielle Kommunikation mit dem IC dann
funktioniert? Das ist mir nämlich auch noch nicht wirklich klar...
Schau mal hier rein. Da steht so ziemlich genau alles auch mit den realen Protokollen am PC. Damit kam ich gut klar und enthält alle Daten die du soweit brauchst.
http://govschl.ndsu.nodak.edu/~achapwes/PICmicro/mouse/mouse.html
Und noch was. Die Position ist relativ!
Grüsse Wolfgang
Tach BlueNature,
verstehe ich das richtig, dass du eine Maus inklusive PS2-Protokoll nachgebildet hast, um das nun wieder an einen µC anzuschließen, der dann auch das PS2 Protokoll können muss. Scheint mir etwas .. hmm .. merkwürdig. Ich muss da was verpasst haben.
Gibt es denn jemand, der schon mal wirklich eine PS2 -Maus an einen AVR angeschlossen hat?
Gibt es irgendwo die genauen elektrischen Specs für PS2, also zulässige Hi- / Low-Level, erfoderliche Ströme, Pull-Up-Werte usw.? Am PS funktioniert die Maus schließlich, also muss es auch irgendwie gehen ...
Ciao ... Bernd
BlueNature
28.08.2004, 09:23
Tach BlueNature,
verstehe ich das richtig, dass du eine Maus inklusive PS2-Protokoll nachgebildet hast, um das nun wieder an einen µC anzuschließen, der dann auch das PS2 Protokoll können muss. Scheint mir etwas .. hmm .. merkwürdig. Ich muss da was verpasst haben.
Gibt es denn jemand, der schon mal wirklich eine PS2 -Maus an einen AVR angeschlossen hat?
Gibt es irgendwo die genauen elektrischen Specs für PS2, also zulässige Hi- / Low-Level, erfoderliche Ströme, Pull-Up-Werte usw.? Am PS funktioniert die Maus schließlich, also muss es auch irgendwie gehen ...
Ciao ... Bernd
Es geht auch. Ich habe keine neue Maus entwickelt. Ich habe geschrieben Maus zerlegt, auf neue Platine gelötet (spart Platz weil kleiner) und die Data und Clock zu eigenem Controller sowie die acht (orginalen aus der Maus entnommenen) IR-Elenente an die eigenen Lochscheiben des Motorantriebs.
Dann ist nach dem Löten nur noch Protokoll fällig im eigenen Controller und das steht bestens im Link beschrieben ^^ ;)
Zudem habe ich das PS/2-Protokoll mit einer üblichen C-Control ausgelesen bekommen miteigenem Assembler-Programm. Geht also auch mit einer "lahmen Gurke" unter den Controllern ...
Grüsse Wolfgang
Noch meine neue "Mausplatine" die ich nicht neu entwickelt habe sondern umgetopft nach einem selbst gezeichneten Schaltplan meiner als Basis verwendeten Maus:
Hallo Leute,
Ich versuche auch gerade eine (fertig gekaufte) Maus an nen AVR anzuschließen. Daten kommen raus (schick ich testweise per USART an den PC), aber sinnvoll sind sie bis jetzt nicht... wenn ich sie nach rechts oder unten bewege kommt ein byte 0x00 raus, in die anderen richtungen - so wies gehört - 3 bytes. naja, mein prog ist auch nicht ganz ausgereift, werd ich wohl noch daran arbeiten müssen. Ich verwende übrigens auch die Infos von http://govschl.ndsu.nodak.edu/~achapwes/PICmicro/mouse/mouse.html
Das ist die einzige brauchbare Seite die ich finden konnte.
Die Maus nahe am Boden anzubringen ist doch eigentlich ziemlich einfach:
Ausschnitt in den Bot-Boden dass die Maus reinpasst, oben n Loch ins Mausgehäuse und etwas höher (vielleicht am Deckel des Bot) festschrauben. Auf ebenen Untergründen dürfte das reichen, ansonsten muss die Mausbefestigung gefedert sein, ohne dass sie in x/y-richtung zu viel Spielraum bekommt.
mfG
cht
Hallo cht!
Wegen der Befestigung hatte ich mir auch schon etwas in die Richtung
überlegt. Da ich unter dem Boden des Bots noch etwas Spiel habe, hoffe
ich, mir das Zerstören meines schönen Bodens ersparen zu können.
Das Problem ist das mit den ebenen Untergründen. Von diesen kann ich
nicht unbedingt ausgehen. - Wir zwar kein Offroad-Bot, aber ein paar
Türschwellen sollten schon zu meistern sein!
Denn ein weiteres Problem ist - wie du schon ansprichst, das Problem
mit dem Spiel in x/y-Richtung...
Wie ich das Ganze also sinnvoll federn kann, ist mir leider noch ganz
und gar nicht klar :-(
Ciao,
Simon
Hab mir grad ne Lösung dafür überlegt: Man könnte einfach nur das X-Spiel verringern (ganz null geht ja nicht) und die Z-Position der Schwerkraft überlassen (sofern dein Bot nur auf der Erde arbeiten soll geht das wohl in Ordnung). Vielleicht mit einer Art ausklappbarem Träger, hab mal ne Skizze gemacht (powered by Synaptics Touchpad - nicht schön aber lesbar ;-) ). Die Maus würde dann wenns nach oben geht sich etwas nach hinten bewegen, aber das gleicht sich ja nachher wieder aus wenn der Abstand wieder größer wird.
Außerdem funktioniert mein Maus-Interface-Code jetzt: Sie sendet immer brav 3 bytes, die mein mega16 ans USART weitergibt. Assembler-Code gibts auf Wunsch, verstehen müsst ihr ihn selbst (hab ich noch nicht ganz geschafft...)
mfG
cht
Hi BlueNature,
_jetzt_ hab ich es endlich verstanden ;-)
Das umbauen geht leider bei mir nicht, weil es eine Super-Billigmaus für 2? war. Da ist der
Chip direkt auf die Platine geklebt und vergossen. Das ist aber auch eher ein kleineres Problem.
Kann mal jemand einen funktionierenden Sourcecode posten ?
Zum Thema Befestigung: Ich hab die Maus zerlegt, die Encoderscheiben mit Achse rausgenommen, ein Zahnrad draufgesetzt, den Getriebemotor aufgesägt, und daran den Encoder angeschlossen. Vielleicht poste ich morgen ein paar Bilder, wenn's jemand interessiert.
ciao ... Bernd
...
Außerdem funktioniert mein Maus-Interface-Code jetzt: Sie sendet immer brav 3 bytes, die mein mega16 ans USART weitergibt. Assembler-Code gibts auf Wunsch, verstehen müsst ihr ihn selbst (hab ich noch nicht ganz geschafft...)
...
moin moin,
den Code würde ich wirklich gerne sehen. Vieleicht verstehe ich ihn auch nicht, aber es wäre schon gut wenn ich _sehen_ würde, dass es auch hier klappt.
ciao .. bernd
ok hier kommt er. Kommentare sind leider nicht sehr ausführlich, aber ich denke es geht. Du brauchst nur noch ein Verbindungskabel zum RS232 Port deines PCs und (wenn noch nicht auf dem Board) einen MAX232. Schaltung und Pinbelegung des Kabels gibts im AVR-Tut auf www.mikrocontroller.net
Viel Spaß mit dem Code!
cht
ok hier kommt er. Kommentare sind leider nicht sehr ausführlich, aber ich denke es geht. Du brauchst nur noch ein Verbindungskabel zum RS232 Port deines PCs und
...
Besten Dank. Ich benutze das RN-Controll-Board, ist also schon alles drauf.
Noch eine Frage: Laut Source werden die Ports B2 und B3 als Eingang benutzt, B4 und B5 sind als Ausgang belegt. Sehe ich das korrekt, dass jeweils B2/B4 und B3/B5 als Clock bzw Data-Leitungen verbunden werden und an die Maus gehen?
Ciao .. Bernd
PS2 arbeitet mit OpenCollector. Ich habe also je einen NPN mit Basis+Widerstand an B4/B5, mit Kollektor (+Pullup) an B2/B3 angeschlossen. Sobald du B4 bzw. B5 auf 1 setzt wird B2 bzw. B3 low.
Das Datenformat ist prinzipiell richtig (wie auf der seite die ich oben gelinkt hab), nur die Flags im ersten Byte waren völlig durcheinander, und das bei allen meiner Testmäuse gleich. Vermute da ist n Fehler auf der website, also ausprobieren welches Bit wofür ist...
mfG
cht
PS2 arbeitet mit OpenCollector. Ich habe also je einen NPN mit Basis+Widerstand an B4/B5, mit Kollektor (+Pullup) an B2/B3 angeschlossen. Sobald du B4 bzw. B5 auf 1 setzt wird B2 bzw. B3 low.
Wieviel Ohms habe deine pullups?
Reichen dafür nicht die im AVR eingebauten aus? Dann muss man eben immer zwischen Ein- und Ausgabe umschalten...
Hmm, ich probier erstmal deine Variante aus, besten Dank erstmal.
ciao .. Bernd
ich hab 6k8 Widerstände genommen, davon hab ich mir beim großen C mal ne Hundertertüte gekauft und nehm sie jez überall wo geht (Transistorvorwiderstand, Pullup, Spannungsteiler, Platinendeko...), der Wert an sich ist da ziemlich unkritisch (2k-15k würd ich sagen). Die AVR-Pullups würden wohl auch gehen, nur hab ich befürchtet dass beim Umschalten zwischen Aus/Eingang kurz falsche Pegel auftreten, da opfere ich lieber noch zwei pins.
mfG
cht
Hallo zusammen.
Weiß jemand, wo man diesen LS7084 bekommt.
Ich finde ihn nirgends
Sorry, dass ich den alten Thread rauskrame; aber das gleiche Problem habe ich auch. Ich habe mir schon eine Schaltung mit dem IC überlegt und erst jetzt festgestellt, dass es ihn nirgends (?) zu kaufen gibt :(.
Wäre super, wenn jemand eine Bezugsquelle nennen könnte oder ein Bauteil wüsste, das die gleiche Aufgabe (Quadratur-Decoder) beherrscht. Ich habe bis jetzt nur teure von Agilent gefunden, die aber viel mehr können als benötigt.
Grüsse,
Chris
Mir gehts genauso, hab die Teile auch nirgends gefunden. Entweder du baust das Ganze anders auf (ICs sind ja auch nur Transistorschaltungen...), oder du beschließt dass das Bisschen Ungenauigkeit nicht weiter stört und hängst die Lichtschranken direkt an nen U/D-Counter. Ist zwar nicht schön, aber was soll man machen.
mfG
cht
Hallo,
ich experimentiere auch gerade mit einer "Doppel"lichtschranke aus ner Maus rum.
Kann man nicht einfach die beiden Lichtschranken an zwei Analoge Ports eines AVR anschließen und dort die Spannung messen, wenn dann an einem die Spannung kleiner als ein bestimmter Wert wird, weiß er das gerade ein "Zacken" des Rädchens vorbeigekommen ist?! Das müsste doch eigentlich funktionieren, oder gibt es da die Gefahr, dass der AVR evntl. zu langsam ist und Signale übersieht?
Möchte die Doppellichtschranke später als Drehsensor benutzen, eben so wie es in der Maus gemacht wird, jedoch ohne diese ganze Mauselektronik und möglichst halt auch ohne andere zusätzliche Elektronik bis halt auf den AVR.
möglichst halt auch ohne andere zusätzliche Elektronik
Dann wird der A/D-Port wohl die einzige Möglichkeit sein. Ich befürchte allerdings, dass gerade der A/D-Converter zu langsam für sowas ist. Kannst du nicht wenigstens 1,2 Transistoren pro Lichtschranke opfern um gleich brauchbare Digitalpegel zu erzeugen? Die müsstest du dann wohl auch auf mindestens einen Interrupt legen, wenn dein AVR noch was anderes machen soll.
Bequemer ist es allerdings, wenn der AVR gleich nur Zahlen auslesen muss und das Decodieren und Zählen von externen ICs übernommen wird, eben dafür braucht man ja die Quadraturdecoder.
mfG
cht
hmm, klar nen paar Transistoren hab ich noch da.
Wenn ich dann für jede Lichtschranke noch nen Interrupt übrig hätte und das in Assembler progge müsste das doch dann machbar sein, oder?
Naja ich probiers dann einfach aus obs klappt.
Bloß wie müsste ich die Transistoren schalten, damit am Ende ein digitales Signal rauskommt (also nur 5V oder GND)?
Aus der Lichtschranke kommen wenn Licht drauf fällt 0,6Volt und wenn kein (kaum) Licht drauf fällt irgendwas mit 0,001V raus.
ThSteier
03.01.2006, 13:25
Weil ich gerade (zwecks LS7083 / LS7084) über den Thread gestolpert bin: auf der Homepage von LSI wurde als deutscher Distributor TOPAS (http://www.topas.de) genannt. Ich hatte dort vor längerer Zeit mal angefragt, aber bisher keine Antwort...
Vielleicht wäre es nützlich, mal grob zu ermitteln, welche Mengen überhaupt gebraucht würden - eine Sammelbestellung mit Stückzahlen im 100er-Bereich sorgt vielleicht eher für eine Reaktion als diverse Anfragen nach Einzelstücken bzw kostenlosen Mustern. Wenn wirklich größerer Bedarf da wäre, könnte das vielleicht sogar was für robotikhardware.de sein.
Viele Grüße,
Thomas
Edit: Inzwischen gibt es die Nachfolgetypen LS7183 / LS7184 von bzw US Digital (http://www.usdigital.com) (nettes Produktsortiment übrigens). Aber da habe ich auch noch keinen Distributor entdeckt. :(
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.