Hallo, ich habe einen ALPS Drehimpulsgeber mit drei Pins. Aus Messungen weis ich, dass bei einer Stufe Drehung, abhängig von der Drehrichtung, erst der eine und dann der andre Pin gegen den Dritten geschlossen wird. Bei entgegengesetzter Richtung anders herum, also entstehen zwei phasenverschobene Signale. Hat irgendjemand eine Idee, wie ich diese Signale in ein Impuls- und ein Richtungssignal verwandeln kann?? Ich habe mir schon überlegt, irgendwie mit einem Flipflop mit Preset ans Ziel zu gelangen....
Hier ein paar Links: http://www.mikrocontroller.net/forum/read-4-11611.html http://www.mikrocontroller.net/forum/read-1-18797.html http://dse-faq.elektronik-kompendium.de/dse-faq.htm http://www.portlandrobotics.org/robots/servo_encoder/ Ich habe mit Hilfe der Beispiele aus diesen Links auch ein Programm geschriben bzw. "zusammenkopiert". Ich benutzte jedoch einen selbstgebauten Impusgeber, bestehend aus zwei Reflexkopplern, siehe Link oben mit den Servos. Gruß Zoltan
Du legst einfach den einen Kanal des Drehgeber auf einen Interrupt Eingang. Wenn dieser Interrupt kommt schaust Du dir den Status des zweiten Kanals (der auf nem normalen Eingang liegt) an. Werner
So im bild siehst du wie ich es gemacht habe für 68HC11 doch dürfte auch bei dir gehen. also der schler löst aus und dann blockt ergleich den eingang so das der zweite keine chance hat an das FlipFlop zukommen. und der IRQ wird solange gesetzt bis ein Schreibzugriff erfolgt als RW leitung auf High geht. leider bis jetzt nur im simulatur geteste es könnte sein das die impulse zu schnell auf einander folgen und das gatter nicht mehr richti dicht machen kann. muss am mal testen oder weiß einer die nanosec zwischen den signalen? wenn du dir http://www.digitalsimulator.de/ den DIGISIM installierst kann ich dir auch das digifile schicken. tschö René
Hallo, ich versuche das ganz mit 2 I/O-Ports, möchte keinen Interupt opfern, frage einen Pin ab und wenn auf LOW geht frage den anderen Pin. Ich baue es in kürze auf, mal sehen ob es klappt. Gruss A. Arndt
hab gerade nochmal geschau also 5ms scheinen typische werte für die Zeit zwischen den beiden kontakten zu sein. also mit meiner schaktung kein problem da nur 5 gatter durchlaufen werden also ca 50ns verzögerung. werde die aber in ispCPLD "einbauen" und ma sehn ob es geht. tschö René
Hallo, klappt astrein, wie oben erklärt, nach der Auswertung mit Pause von 50ms. Gruss A. Arndt
Hi, mit dem unten angeführten Code hab ich mit einem 2313er und Bascom eine 4-fach Auswertung eines Drehgebers gemacht. ( 500 Striche am Geber = 2000 Impulse/Umdrehung!!) @ A.Arndt bei solchen Anwendungen ist es sicher besser die Interrupt's zu verwenden anstatt der Polling-Methode. Gruss Gerhard Dim Wert As Integer Wert = 0 Config Portd = Input Portd = 255 Enc_a Alias Pind.3 Enc_b Alias Pind.2 Mcucr = &B00001111 On Int0 Encoder0 On Int1 Encoder1 Enable Int0 Enable Int1 Enable Interrupts Do Loop End Encoder1: Toggle Mcucr.isc10 If Enc_a <> Enc_b Then Decr Wert Else Incr Wert End If Return Encoder0: Toggle Mcucr.isc00 If Enc_a = Enc_b Then Decr Wert Else Incr Wert End If Return
Hallo, kommt vielleicht etwas spät, aber ich habs erst gestern entdeckt. Ich hatte das selbe Problem wie Boris. Wie kann man aus dem Dehimpulsgeber (DIG) ein Richtungssignal machen. Ich hatte einen Mikrocontroller verwendet und eine Software dazu geschrieben, hat auch alles funktioniert (ich benutze C-Control, die hat also kein Interrupt). Is alle schon 2 Jahre her. Jetzt möchte ich allerdings "Rechenleistung" einsparen und das Drehimpulsgebersignal hardwaretechnisch auswerten. Das heißt, dass beim Rechtsdrehen Pin 1 pulst und beim Linksdrehen der andrere Pin pulst. Leider kenne ich mich kaum mit Digitaltechnik aus, hab gestern erst damit angefangen ;) und hab jetzt mit dem Programm Digitalsimulator einiges ausprobiert. Eine Schaltung hat funktioniert, hatte aber 6 Gatter und ein Flip-Flop. Heute bin ich durch Ausprobieren auf eine Schaltung gekommen, die ich im Anhang als Bild beigefügt hab. Und zwar benutze ich ein T-Flip-Flop, wobei Pin A des DIG an den eingang kommt und Pin B des DIG an den Clockeingang (sagt man das so?) Lustigerweise funktioniert das sehr gut. Das EXOR Gatter dient nur noch für den "Impuls", damit das Signal nicht immer auf High ist. Ich wollte mal die versierten unter euch fragen, ob das prinzipiell möglich ist. Kann ich so ne Schaltung bauen und funktioniert die auch in der Praxis? Wie gesagt, sorry, ich kenn mich kaum mit Digitaltechnik aus.
Hi nochmal, ich hab den anderen Beiträgen entnehmen können, dass das Thema "Drehimpulsgeber" wohl schon langsam den Hals raushängt. Allerdings beschäftigen sich alle Beiträge mit einer softwareseitigen Verarbeitung der Signale und ich hab noch nichts über eine Hardwarelösung gesehen. Könnte nicht vielleicht doch der eine oder andere auf meine Frag eingehen? Wäre sehr dankbar. Grüße aus Norwegen Philipp
Bei ELV gibt es eine Schaltung die ein Drehimpulsgeber zur Ansteuerung eines Digitalpotentiometer nutzt. Die Drehrichtung wird durch ein D-FlipFlop (CD4013) ermittelt. (Ausgang B an Clock-Eingang, Ausgang A an D-Eingang, je nach Drehrichtung Low oder High an Q).
@Philip, die Schaltung ist aus mehreren Gründen kritisch: 1. Es wird nicht jeder Phasenwechsel erkannt, sondern nur jeder 4. Man braucht also Drehgeber, die immer nach 4 Schritten einrasten. 2. Es kommt beim Umschalten durch die unterschiedlichen Durchlaufzeiten durch das D-FF bzw. EXOR zu Spikes, die zu Fehlzählungen führen können 3. Prellungen werden nicht unterdrückt und können zu Fehlzählungen führen. Für normale Mikrokontroller stellt der geringe Softwareaufwand keine nennenswerte Belastung dar, deshalb wird diese Lösung bevorzugt. Wenn die C-Control aber damit überfordert ist, würde ich daher besser z.B. einen ATTiny12 die Aufbereitung durchführen lassen. Peter
Danke erstmal für die antworten. @Florian S. : Ups, ich meinte natürlich auch ein D-Flip-Flop kein T-FF wie ichs geschrieben hab. muss ich mal nachschauen bei ELV. @Wolle: hm, da muss ich mich erstmal ein wenig reindenken ;) @Peter Dannegger: Mein DIG wechselt pro Rasterstellung den Zustand der ausgänge je einmal. Pro klick bekomme ich auch ein Impuls (zumindest nach der Simulation) 2. Spikes? was ist das? sorry, hab kA. 3. Prellungen sollten doch egal sein, wegen dem d-Flip-Flop. Die Signale der beiden DIG Ausgänge sind doch recht weit auseinander (verglichen mit den Prellstörungen) wenn man nicht gerade wie ein Ochs am Rad dreht oder Formel-1 spielt :) und das d-FF müsste das eigentlich weg"glätten" Die Auswertung mit dem mikroC (wie kürzt man das eigentlich ab?) stellt zwar kein Problem da, das stimmt, aber ich wollte den Programmcode minimieren. Das ganze wird ziemlich komplex, da ich eine Menüsteuerung damit machen will, und dabei bleibt es nicht. Der Programmcode hat jetzt schon fast 900 Zeilen und da ist nichtmal die Menüführung drin. ich kann dir ja mal die *.dsim schicken, wenn du digitalsimulator hast, dann könntest du mal ausprobieren :) Man bekommt pro rasterstellung einen Impuls. Ich probiers einfach mal aus, wenn ich wieder kann. Ach noch was, woher weiß ich eigentich, welchen IC ich kaufen muss. Also ich mein, kann man irgendwo nachschlagen in welchem IC Gatter oder Flipflops integriert sind?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.