- LiTime Speicher und Akkus         
Ergebnis 1 bis 9 von 9

Thema: Drehzahlmessung mit Optoelekronik aus Maus

  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.702
    Blog-Einträge
    133

    Drehzahlmessung mit Optoelekronik aus Maus mit HW Unterstützung

    Anzeige

    Powerstation Test
    Hallo,

    ich habe aus einer Kugelmaus Encoderscheibe, Fototransistoren und IR Leds ausgebaut und an einem Getriebe zum Zwecke der Drehzahlmessung angebracht.

    Es sind je zwei Fototransistoren in einem Gehäuse untergebracht, so daß man die Drehrichtung der Encoderscheibe anhand der Reihenfolge der eintreffenden high Impulse dieser beiden Transistoren feststellen kann.

    Die high Impulse überlappen sich - heißt bei Vorwärtslauf schaltet T1 auf high, danach T2 auf high, dann T1 auf low, T2 auf low. Pause, Spiel beginnt von neuem. Bei Rückwärtslauf schaltet T2 zuerst auf high.

    Laut RN-Wissen würde man die Pegel pollen und nach den erhaltenen Werten die Drehzahl ausrechnen.

    Ich hatte mir gedacht, die Impulse der Transistoren per Pin Change Interrupt zu zählen. Dazu habe ich mir angehangene Schaltung ausgedacht. Diagramm ist von rechts nach links zu lesen (beginnt mit T1 von low nach high als Vorwärtslaufsequenz - A1 wird als erstes high. Es folgt nach der Pause die Rückwärtslaufsequenz mit T2/A2 zuerst high).

    Bild hier  

    Bild hier  

    Sinn ist, daß der Ausgang (µC Eingang) high ist, dessen Transistor zuerst high geworden ist. Damit könnte man je einen Pin für Vorwärtslaufzählung und Rückwärtslaufzählung verwenden und die Counter im Programm in festen Intervallen abfragen.

    Das könnte das Programm vereinfachen, erhöht aber natürlich wieder den HW-Aufwand , insbesondere auch, da die Impulse von den Transistoren erst noch mit einem Komparator aufbereitet werden müssen.


    Ich stell das mal zur Diskussion ein und sehr gerne sind auch Vereinfachungen zur Signalaufbereitung gesehen

    PS. Hab die maximale Frequenz, die an den Ausgängen auftreten kann noch nicht gemessen. Dürfte aber so bis 6 kHz gehen.

    Gruß
    Searcher
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Mausdiagramm.png   Signalaufbereitung.png  
    Geändert von Searcher (26.11.2011 um 09:41 Uhr) Grund: Link zum RN-Wissen eingefügt
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  2. #2
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    71
    Beiträge
    13.048
    Hie gibt es das Thema Quadratursignale mit einer Ansteuerung für einen up/down counter. Vielleicht ist noch eine Anregung für eine HW Vereinfachung drin.

    https://www.roboternetz.de/community...dratursignalen

    Vor allem soll die Darstellung zeigen, wieviele Übergänge in dem Quadat der 4 Zustände sind und welche ausgewertet werden sollen und können.
    Geändert von Manf (22.10.2011 um 19:30 Uhr)

  3. #3
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Hallo!

    Ich möchte nur einen ausprobierten Programablaufdiagram (PAD) für Auswertung eines Drehencoders mit jedem µC vorschlagen ( http://www.rn-wissen.de/index.php/PI...w._Drehencoder ), da eine diskrete Lösung mit einfachen Gättern ohne 2-bit Speicher unmöglich ist. Nur für Messung der Drehzahl in einer Richtung enfällt die Hälfte davon, weil entweder _Finc bzw. _Fdec nötig ist. Deshalb reicht dafür ein Pin und 1-bit Speicher (Flag) aus.
    Geändert von PICture (22.10.2011 um 21:21 Uhr)
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  4. #4
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die Lichtschranken haben in de Regel kein oder wenig Prellen. Wenn man bei der Umsetzung in ein Digitales Signal einen Schmidt-trigger mit genügend Hysterese nimmt, sollte das Signal frei von Störungen sein. So lange man nicht die Richtung erfassen muss, kann man dann einen Zähleingang am µC nutzen, oder für die Drehzahlmessung mit sehr hoher Auflösung (vor allem bei niedriger Drehzahl) auch direkt den ICP Eingang.

    Um jeden Schritt wirklich zu erfassen kann man auch direkt den Pin Change Interrupt nehmen, solange das Signal frei ist von schnellen Störungen. Um sicher zu gehen das HF Störungen den µC nicht überlasten wäre wie bei den mechanischen Gebern ein Pollen, z.B. im Timer Interrupt angebracht. Auch 6 kHz Zählfrequenz sind nicht so schnell.

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.702
    Blog-Einträge
    133
    Vielen Dank für eure Hinweise.

    Nach Lesen der Beiträge zu den Links, vor allem von Deinem Manf, hat die oben gezeigte Schaltung den Nachteil, daß sie bei Drehrichtungsumkehr in einem ungünstigen Moment falsch zählen würde.

    Wenn T1 high ist und T2 heigh wird, wird A1 high. Wird die Richtung in diesem Augenblick umgekehrt bis T1 und T2 low sind, ist ein Puls gezählt. Nun könnte wieder eine Hin- und Herbewegung stattfinden (T1 high, T2 high - T2 low, T1 low) bei dem ein weiterer Puls am gleichen Ausgang gezählt würde, obwohl keine Fortbewegung stattgefunden hat.

    Richtig wäre eine Schaltung, die eine "gute" komplette Sequenz abwartet und in der "Pause (T1 = 0 und T2 = 0) den entsprechenden richtigen Ausgang pulst? Da kommt dann wohl Dein 2 Bit Speicher zum Einsatz, PICture?

    Weil ich jetzt schon die Vorrichtung habe, die Vorwärts- und Rückwärtszählung erlaubt, möchte ich auch versuchen, die entsprechenden Zählungen durchzuführen. Ein Interrupt, der sich auf Triggerung über eine Flanke konfigurieren läßt wäre günstiger als ein PCINT. Die kleinen AVR haben davon jedoch zu wenig. Wenn man noch eine zweite solche Meßanordnung einen µC anbringt, braucht man schon vier Leitungen. Pollen käme dann vielleicht doch in Frage. Die Auswertung ob Vorwärts- oder Rückwärtszählung wäre mit der HW-Erweiterung schon einfacher!?

    Hab die Schaltung aus der Kopfnuß noch nicht genau nachvollzogen. Dort wird, soweit ich gesehen habe, mit einem Richtungsbit und einem Puls zur Auswertung des Richtungsbits gearbeitet.

    Bei mir käme ein Puls auf einer der beiden Richtungsleitungen. Ich kann noch nicht überblicken, was für Programm und/oder Hardware günstiger wäre.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  6. #6
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Hallo Searcher!

    Die Auswahl der verwendeter Methode ist natürlich frei. Früher habe ich s.g. TTL Grab's gebaut und heute wären es wahrscheinlich CMOS Grab's o.ä. Seit es µC's gibt, habe ich bisher immer die einfachste Lösung als Kompromis von Hard- und Software als optimal angenommen und somit die externe Hardware aufs Minimum reduziert, weil die Software im µC kein Platz mehr als einfachere braucht und auch nicht mehr wiegt. Als grössten Vorteil der Software finde ich, dass man sie nicht bestellen und auf die Lieferung warten muss. Ausserdem ist mir bisher, sogar bei Fehler, noch keine Zeile abgeraucht.
    Geändert von PICture (23.10.2011 um 15:45 Uhr)
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.702
    Blog-Einträge
    133
    Obwohl ich mittlerweile das Quadratursignal per SW auf einem µC auswertet habe, läßt mich der Gedanke an eine HW-Unterstützung nicht los. Der SW-Algorithmus erzeugt aus einem zwischengespeicherten Bitmuster, daß die Reihenfolge der Zustände des Quadratursignals wiedergibt, einen Index. Der Index zeigt auf eine Tabelle, in der steht, ob es vorwärts, rückwärts oder gar nicht geht.

    Weil es mir vor IC-Leichen und TTL-Gräbern nicht graust, kam mir der Gedanke, die beiden Leitungen des Quadratursignals so an ein Schieberegister anzuschließen, daß bei jedem Flankenwechsel der jeweilige Zustand der flankenverursachenden Leitung ins Register geschoben wird. An einem 8bit Schieberegister (zB 74HC595) könnte man dann am Ausgang den Zustand einer kompletten Periode abgreifen. Bliebe noch die Auswertung der Ausgänge des Schieberegisters.

    Ziel wäre immer, noch zwei Leitungen zu bekommen; eine, auf der Vorwärtsimpulse kommen und die andere, auf der Rückwärtsimpulse kommen oder eben keine Impulse bei Stillstand/ungültige Zustandswechsel.

    Quasi in HW gegossene SW-Lösung. Der Atomausstieg wurde auch beschlossen .Idee ist noch frisch und würde vermutlich pro Quadratursignal außer dem Schieberegister ein weiteres IC, paar Dioden etc benötigen. Man hätte jedoch mit "Hausmitteln" eine billige high speed Lösung, die kaum Rechenzeit im µC beanspruchen würde.

    Gruß, Euer manchmal nicht ganz dichter aber gerne bastelnder
    Searcher

    PS. Gerade auf Umwegen gefundene, noch nicht untersuchte Schaltung.
    http://www.engr.colostate.edu/~dga/m...gures/9-18.jpg
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.702
    Blog-Einträge
    133
    Hallo,
    es geht weiter mit der zuletzt gefundenen Schaltung:
    http://www.engr.colostate.edu/~dga/mechatronics/figures/9-18.jpg
    Hab das probiert (den Schieberegisterversuch erstmal zurückgestellt ), und es ist etwas besser als meine am Anfang gepostete Schaltung. Leider ist es auch da möglich, daß, wenn der Encoder zwischen bestimmten Stellungen pendelt, eine Falschzählung zu bekommen.

    Die Schaltung hab ich dann mit weiteren 2 D-Flip-Flops erweitert um auf den von PICture erwähnten 2-Bit Speicher je Kanal (A und B) zu kommen. Mit weiteren, für mich nötigen 4 NANDs brauch ich glatt 3 ICs (2 X 74HC74, 1 X TC4093). Damit ist es dann möglich, einen Ausgang für die Vorwärts- und einen für die Rückwärtszählung zu bekommen.

    Ich trau mich nicht, die Schaltung anzuhängen, da der Umfang selbst für mich noch nicht ganz akzeptiert ist.

    Ich versuche weiter ...

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.702
    Blog-Einträge
    133
    Hallo,
    Zitat Zitat von Manf Beitrag anzeigen
    Hie gibt es das Thema Quadratursignale mit einer Ansteuerung für einen up/down counter. Vielleicht ist noch eine Anregung für eine HW Vereinfachung drin.

    https://www.roboternetz.de/community...dratursignalen
    ...
    Es hat eine Vereinfachung gegeben Hab die Schaltung aufgebaut. Aber kaum, daß ich ein Programm dazu schreiben wollte, fiel mir auf, daß ich eigentlich keine Taktimpulse brauche, um nur bei steigender Flanke auszuwerten. Der bei mir vorgesehene Pin Change Interrupt wird bei steigender und bei fallender Flanke ausgelöst und somit hat sich folgende Schaltung ergeben:

    Code:
                     Delay           XOR
                     ______           __
                 .--|______|--------\\  \
                 |                   ||  |----------- UP/DOWN
                 |            .-----//__/
                 |            |
                 |            |
                 |            |      XOR
                 |            |       __
        A -------o------------)-----\\  \
                              |      ||  |----------- CLOCK
        B --------------------o-----//__/
    Bei jeder Änderung durch das Quadratursignal an A oder B wechselt Clock seinen Pegel und kann einen PCINT auslösen. Das UP/DOWN Signal kann dann in der ISR ausgewertet werden. Das Delay bestimmt die Zeit, in der ein gültiges UP/DOWN Signal anliegt und ausgewertet werden muß.

    Damit könnte man mit einem 7414 und R/C für das Delay und eventuelle Aufbereitung des Encodersignals plus einem 7486 für zwei Encoder auskommen und die ISR(s) ist auch sehr kurz zu halten, werden aber bei allen A B Pegelwechseln aufgerufen.

    Die Anordnung scheint gut und richtig zu funktionieren. Hoffe nicht, das mir irgendein Testfehler unterlaufen ist.

    Jetzt muß ich mich in meinem aktuellen Projekt nur noch zwischen der SW-Lösung und dieser HW-unterstützten entscheiden und versuchen den Phasenversatz möglicht genau auf 90° zu bringen.

    Gruß
    Searcher
    Geändert von Searcher (29.11.2011 um 10:26 Uhr)
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

Ähnliche Themen

  1. Drehzahlmessung
    Von Dunkle Macht im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 1
    Letzter Beitrag: 07.06.2011, 17:16
  2. optische Maus am PC, aber nicht als Maus ...
    Von frank-findus im Forum Sensoren / Sensorik
    Antworten: 7
    Letzter Beitrag: 02.09.2007, 23:22
  3. Drehzahlmessung
    Von nunzio im Forum Elektronik
    Antworten: 31
    Letzter Beitrag: 05.09.2006, 13:02
  4. RP5 und Drehzahlmessung
    Von the_snoofy im Forum Robby CCRP5
    Antworten: 16
    Letzter Beitrag: 31.08.2005, 20:27
  5. Drehzahlmessung
    Von Florian. im Forum Sensoren / Sensorik
    Antworten: 18
    Letzter Beitrag: 05.06.2005, 17:53

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiTime Speicher und Akkus