Hallo,
ich habe einen Sharp GP1A71R, das ist ein Rotationsmesser mit einer 120 Schrittscheibe. Ich möchte die Daten, beziehungsweise die Rotation in beide Drehrichtungen an den PC senden. Bei z.B. Rechtsdrehung soll die Rotation steigen und bei Linksdrehung soll sie fallen. Wie bekomme ich das hin?? Die Daten will ich an ein Terminal Programm über die Serielle Schnittstelle senden.
Welchen Wert möchtest du genau über RS232 senden? Absolute Schrittanzahl (Position)? Schritte pro Zeiteinheit (Drehgeschwindigkeit)? Für RS232 brauchst du eigentlich immer einen Mikrocontroller (oder es wird aufwändig), wenn du keinen benutzen willst könntest du das Ding per Parallelport anschließen. Wie groß/klein werden denn deine Zählwerte? Pro 4 bit solltest du ein IC rechnen, plus eins zum Decodieren des Sensorsignals, für mehr als 8 Bit nochmal 2 Multiplexer. Wenn du mir genauere Infos gibst mal ich dir auch gerne nen Schaltplan.
mfG
Wenn es dir genügt,auf dem Rechner eine Zahl angezeigt zu bekommen, die die Position in Form eines positiven oder negativen Wertes angibt, brauchst du keinen Mikrocontroller oder ähnliches. Du kannst die beiden Ausgänge auch direkt an zwei Eingangsleitungen des COM-Ports anschliessen und mittels eines kleinen Programms deren Status überwachen und auswerten. In QBasic z.B. wäre das sicher so mit 20-30 Zeilen Code zu machen. Ohne RS232-Standard oder so. Bei jeder positiven Flanke an A wird geprüft, ob B auf 1 oder 0 liegt. Entsprechend wird von der Position ein Schritt addiert oder abgezogen und der neue Wert angezeigt. Das sollte eigentlich schon reichen.
Diese Form des Quadratur-Decodierens enthält einige Ungenauigkeiten, z.B. wenn die Achse nur um eine Teilung hin und her vibriert. Eine "echte" Decoderschaltung, die ich auch schon getestet habe, gibt es hier: http://www.engr.colostate.edu/~dga/m...gures/9-16.gif
Als D-FlipFlop eignet sich z.B. ein 74HC 74; wenn ein Hardwarezähler nötig ist, einfach ein 74HC 192 an die beiden /Q (die invertierten) Ausgänge hängen. Die einfachste Lösung ist dann aber wahrscheinlich das Verbinden der Qs mit dem COM-Port.
mfG
ich denke, da fehlen noch n paar Infos
also, die Sensordaten sollen natürlich über einen Controler ausgewertet werden, habe auch eine cc2, an der sie angeschlossen sind. Sie sind auch an die interrupt Ports des Controlers angeschlossen, also die, die für die schnelle Zählererfassung gedacht sind. Diese Daten sollen über die Serielle Schnittstelle der cc2 gesendet werden. Die Rotation soll pro Zeiteinheit gemessen werden, das heißt ich möchte immer zu einer festen Zet, die gezählten Schritte als zahl bekommen.
Probleme macht mir dabei das Programm, ich bekomme die Schritte einfach nicht gezählt, in eine Richtung geht es, aber ich kann keine Umdrehung in die andere Richtung erkennen.
MfG
Joe
Dann benutz einfach die eine Schaltung die ich oben gelinkt habe - da bekommst du getrennte up- und down- Zählimpulse, dann ists ganz einfach zu programmieren. Für einen Roboter ist so eine Schaltung nach eigener Erfahrung aber ungeeignet, weil der Controller mit Interrupts regelrecht überhäuft wird. Da solltest du dann doch nen externen Counter benutzen - ist zwar etwas Schaltungsaufwand, aber funktioniert garantiert und dir bleibt Rechenzeit ohne Ende!
Die angehängte Schaltung wurde in dieser Form wirklich mal aufgebaut, passt auf eine halbe Eurokarte und enthält zweimal (rechts/links) je einen Quadraturdecoder und einen 8bit-Counter sowie einen 8poligen DIP-Schalter und eine Buchse für noch mehr Erweiterungen. Und das alles lässt sich über den SPI Bus auslesen! Teile der Schaltung kannst du natürlich weglassen wenn du sie nicht brauchst.
Danke!
Aber gibt es nicht die möglichkeit die extern gezählten Daten in einem Eeprom zu speichern und dann über den I2C Bus auszulesen, dabei sollte ja auch keine Rechenleistung verloren gehen und ich würde die Daten komplett von dem Controler auslsen und in den Computer spielen.
MfG
Joe
vom Eeprom würde ich abraten, weil sie nur begrenzt wiederbeschreibbar sind... wenn das nicht weiter stört ist aber nichts dagegen einzuwenden. Für den I2C-Bus wären sonst die PCF8574 Porterweiterungs-ICs eine gute Alternative. Oder eben die SPI-Technik mit Schieberegistern, die sind günstiger und programmtechnisch einfacher anzusteuern als I2C.
mfG
Lesezeichen