- fchao-Sinus-Wechselrichter AliExpress         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 27

Thema: Drehimpulsgeber per Hardware auslesen?

  1. #11
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Wenn die Hardware um den Encoder bei jeder Drehung um eine Position ein Impuls erzeugt und ein Interrupt auslöst, der die Richtung in ISR einliest, könnte sich die Richtung mit neuem Wert überschreiben und braucht nicht gelöscht werden. Dann braucht man nur 2 Eingangspins beim µC und verliert keine Impulse. Es ist also mit dem Interrupt-Pin (Takt) besser und einfacher.

    Ich habe das so überdenken und die einfachste Schaltung, die mir eingefallen ist, im Code skizziert.

    Der NAND (N1) mit dem D-Flipflop (FF1) bilden einen Monoflop, dessen Impulslänge (Entprellen und Takt um 10ms) wird von R und C bestimmt. Die Werte können erst nach der Festlegung der Logik-Familie berechnet bzw. ermittelt werden. Die Diode (D) beschleunigt nur die Entladung vom C und kann bei niedriger Drehzahl (Hand) weg gelassen werden.

    Die übrigen 2 NAND Gattern (N3 und N4) dienen als Ausgangstreiber. Die Schaltung wurde noch nicht ausprobiert, sollte aber funktionieren.

    MfG
    Code:
                                         Vcc
                                          +
                                          |
                                     +----+
                                     |    |       _
                                     | .--o--. +-| \
                   +-------------------|D S Q|-+ |N3)o---> Richtung
                   |                 | |  _ _| +-|_/
                   |               +---|T R Qo
                   |         Vcc   | | '--o--'
                   |          +    | | FF2|
                   |          |    | +----+
                   |     +----+    |
                   |     |    |    |              _
                   |     | .--o--. |           +-| \
     Drehencoder D1|  _  +-|D S Q|-|--+--+-----+ |N4)o---> Takt
                 o-+-| \   |  _ _| |  |  |     +-|_/
             +-o-_   |N1)o-|T R Qo-+ .-. |
             |   o---|_/   '--o--'  R| | - D       N1,N2,N3,N4=74XX00
            ===  D2        FF1|      '-' ^
            Gnd               |    _  |  |             FF1,FF2=74XX74
                              |   / |-+--+
                              +-o(N2| |
                                  \_|-+
                                      |
                                      - C
                                      -
                                      |
                                     ===
                                     Gnd

  2. #12
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.04.2006
    Ort
    Bayern
    Alter
    35
    Beiträge
    182
    Hi,

    Danke, für diesen Plan.
    Ich werde ihn mir mal durchdenken und dann aufbauen.
    ich hab nur ein problem, ich habe die passenden IC´s nicht zuhause.
    (Ich möchte auch ungern bestellen, da ich , wenns nicht funtkioniert, erneut bestellen müsste und das belastet einen Azubi-Geldbeutel dan doch etwas)
    Hab nur folgende IC´s:
    74LS73: JKFF, auf negative Flanke getriggert
    -daraus könnte man sich mit 2 Not doch auch ein D-FF bauen können wenn ich nicht irre, oder?
    Das D Signal auf den J Eingang und über das NOT auf den K -Eingang, um das ganze positiv zu triggern dan ganz einfach noch ein NOT for den Takt dan sollte es dem 74xx74 entsprechen.

    HEF4518:
    D-Latch
    Waren 4 D-FF´s in einem Gehäuse, nur das der Reset aller verbunden ist.
    Wird deshalb nicht Funktionieren, weil das obere D-FF auch mit zurückgesetz wird, wenn das untere Monoflop zurückfällt, oder?

    CD4081:
    quad 2-input NAND
    Das sollte so passen.

    Könntest du mir erklären wie ich die Lade/Entladezeit der RC-Kombi für den CD4081 oder für einen 74HCT00 , bzw. 74HC00 (einen von denen werde ich dann später, falls die Schaltung läuft, auf der neuen Platine einsetzen)berechne?

    t=R*C
    aber was ist mit dem Strom der ins Gatter fließt, und den Schaltschwellen?

    und noch eine Frage:
    An den Drehencoder müssen schon noch Pullups, oder?

    mfg Benedikt

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

    Wenn du keine Inverter hast, kannst du die Schaltung leider nicht aufbauen, da der 4081 kein NAND, sondern AND ist.

    Alle deine Fragen kann ich mit ja beantworten. Die pull-ups habe ich vergessen, weil ich im Kopf die LS gehabt habe und die brauchen sie nicht.

    Bei MOS fließt der Strom nur durch R, weil die Gatter praktisch unendlichen Eingangswiderstand haben. Bei TTL bei 0V auf dem C fließt ein Strom von dem Eingang bis die Spannung H-Pegel erreicht. Für standard TTL ist der innere Widerstand ca. 4k und für LS ca. 40k zum +Vcc. Als Ausgangswerte für ca. 10ms kannst du R=100k und C=0,1 µF für MOS nehmen.

    Die Schaltschwellen kannst du entsprechendem Datenblatt entnehmen. Wenn ich mich nicht irre, für TTL liegt die Schwelle bei ca. 1,4V und für MOS ca. 0,5*Vcc also für Vcc=5V um 2,5V.

    Ich habe die Schaltung für ein Flip-Flop, der auf negative Flanke reagiert, skizziert. Es geht aber nur mit NAND Gatter z.B. 4011 bzw. 4093. Wenn du zumindest Inverter hast kannst du anstatt N1+N3 ein AND aus deinem 4081 nehmen und die Gatter N2 und N4 sind sowieso als Inverter geschaltet. Im Notfall kann man die Inverter mit Transistoren aufbauen.

    MfG
    Code:
                   Vcc
                    +
                    |
                   .-.
                   | | Rpu
                   '-' 10k
                    |                              .-----.
                    +---------------+--------------|J   Q|-----> Richtung
                    |               |         +----|>   _|
                    |               |  _    +-|----|K R Qo
                    |               +-| \   | |    '--o--'
                    |               | |N4)o-+ |       | FF2
                    |               +-|_/     |       +
                    |                         |      Vcc
                    |              Vcc        |
                    |               +         | +--------------> Takt
      Drehencoder D1|  _       _    | .-----. | |
                  o-+-| \   +-| \   +-|J   Q|-+-|--+
              +-o-_   |N1)o-+ |N3)o---|>   _|   |  |
              |   o-+-|_/   +-|_/   +-|K R Qo---+ .-.
             ===  D2|               | '--o--'     | | R
             Gnd   .-.             ===   | FF1    '-'
                   | | Rpu         Gnd   |    _    |
                   '-' 10k               |   / |---+    N1,N2,N3,N4=CD40XX
                    |                    +-o(N2|   |        FF1,FF2=74LS73
                    +                        \_|---+
                   Vcc                             |
                                                   - C
                                                   -
                                                   |
                                                  ===
                                                  Gnd

  4. #14
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.04.2006
    Ort
    Bayern
    Alter
    35
    Beiträge
    182
    Hi,
    danke das du die die Mühe gemacht hast und die Schaltung auf die FFs umgeändert hast.
    Das mit dem 4081 stimmt, es ist ein AND und kein NAND
    sorry war mein Fehler.

    einen 7404 Inverter hab ich da.

    Wenn ich heute mal Zeit hab, dann steck ich das mal auf.
    Hoffe das es mit den Verschiedenen Arten von IC´s(LS, Cmos) funktioniert.
    Hatte damit in der Arbeit schon manchmal Probleme

    Danke!
    Werde darüber berichten, wies funtkioniert hat.
    Wens super läuft könnte man das ja als Miniprojekt für andere öffentlich machen.

    mfg Benedikt

  5. #15
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.04.2006
    Ort
    Bayern
    Alter
    35
    Beiträge
    182
    Hallo,
    ich hab die Schaltung mal aufgesteckt.
    für N1 und N3 hab ich ein AND benutzt und für N4 ein NOT, N2 hab ich aus einem AND und einem NOT zusammengebaut ( um die hochohmigen Eingänge des CMOS zu nutzen)

    Die Takterzeugung klappt wunderbar, nur das Richtungssignal ist fehlerhaft.
    Es ist meist High und springt nur kurz auf low.
    Ab und zu bleibts auch auf low stehen, aber beim nächsten Impuls wechselt es meist.
    Ich denke es liegt an den Unentprellten Daten an J und K.

    Ich versuche mal die zu Entprellen mit einem TP oder evtl. fällt mir etwas anderes ein wie ich die Richtungsanzeige verbessern könnte.

    mfg Benedikt

  6. #16
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.04.2006
    Ort
    Bayern
    Alter
    35
    Beiträge
    182
    Hallo,
    hab schon probiert, das Signal vom Encoder, dass das FF für die Richtung ansteuert per TP zu entprelln, leider ohne Erfolg.
    Dan hab ich die Entrpellzeit des Monoflops erhöht(anstat 100nF, 200nF), und es funtkioniert, besser aber noch nicht perfekt.
    Es schaltet zwar in 75% der Fälle in die Richtige Richtung, wechselt aber dan beim Weiterdrehen immer Kurz in den anderen Zustand.
    Diese Verhalten kann ich mir nicht erklären, weil ja durch das verlängern der Zeit des Monoflops der "Speicherzeitpunkt" des Richtungs-FF nach hinten verschoben wird, also in Richtung wechsel des abgefragten Encoderkontaktes.


    Wenn ich die Zeit weiter erhöhe verschlechtert sich das Resultat wieder.


    Bin z.Z. etwas ratlos.

    mfg Benedikt

  7. #17
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.04.2006
    Ort
    Bayern
    Alter
    35
    Beiträge
    182
    Hi, hab mir die Schaltung noch mal angesehen:
    http://www.dse-faq.elektronik-kompen...e-faq.htm#F.29
    würde die gerne mal ausprobieren.

    Muss mal schauen ob ich irgendwo nen TTL-Takt herbekomme

    mfg Benedikt

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

    Es ist mit der Impulslänge des Monoflops wirklich kritisch. Wenn es 100nF zu wenig ist, ist wahrscheinlich 200nF schon zu viel. Du kannst noch dazwischen probieren und bei irgendeinem Wert sollte es klappen. Es wäre einfacher ein C=100nF und seriell mit dem R=100k noch ein 100k Poti nehmen.

    Die Schaltung ist asynchronisch und einfach, daher aber kritisch wenn es um die Drehgeschwindigkeit und Entprellzeit geht. Eine synchronische Schaltung mit festem Takt (z.B. 100 Hz) wird sicher besser aber auch komplizierter.

    MfG

  9. #19
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.04.2006
    Ort
    Bayern
    Alter
    35
    Beiträge
    182
    Hallo,

    mh habs mit dem Poti schon probiert und egal was man einstellt wird entweder die eine oder die andere Richtung sicher erkannt.

    Bin grad am überlegen ob ich nicht doch einen kleinen µC(Tiny oder mega und den dann den Encoder auswerten lasse auf Takt und Richtung.

    Das hat erstens die Vorteile, dass man so lange probiern kann bis es läuft und es verschiedenste Methoden gibt wie man das angehen kann.
    z.B. Polling oder mit 2 Interrupts
    wie hier:
    z.B.
    http://www.mikrocontroller.net/topic/1503
    oder deine Version.

    Ich muss nur bis nächste Woche warten, biss ich mein µC Board mit ATmega16 wieder zur Verfügung hab und dann werd ich mal probiern so etwas zu proggen.
    Da könnte man dan noch so Spielereien wie Impulsvervielfachung(zum durchscrollern größerer Meßbereiche) oder Abfrage über TWI machen.


    mfg Benedikt

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

    Deine Beschreibung zeigt, dass die Impulslänge auf einem Pin des Drehencoders für jede Drehrichtung unterschiedlich ist. Deswegen habe ich kleine Änderung in der Schaltung gemacht (siehe Code). Jetzt ist die negative Flanke am Takt des FF2 von dem Monoflop unabhängig, was den Fehler beseitigen sollte.

    Die Impulslänge des Monoflops sollte so lang sein, dass die Interrupt auslösende Flanke erst kommt, wenn die Richtung schon stabil im FF2 gespeichert ist.

    Wenn es jetzt nicht richtig funktioniert, lässt sich es mit so einfacher Schaltung nicht realisieren.

    MfG
    Code:
                  Vcc
                   +
                   |
                  .-.
                  | | Rpu
                  '-' 10k
                   |                                .-----.
                   +-----------------+--------------|J   Q|-----> Richtung
                   |                 |         +----|>   _|
                   |                 |  _    +-|----|K R Qo
                   |                 +-| \   | |    '--o--'
                   |                 | |N4)o-+ |       | FF2
                   |                 +-|_/     |       +
                   | +-------------------------+      Vcc
                   | |              Vcc
                   | |               +           +--------------> Takt
     Drehencoder D1| |  _       _    | .-----.   |
                 o-+-|-| \   +-| \   +-|J   Q|---|--+
             +-o-_   | |N1)o-+ |N3)o---|>   _|   |  |
             |   o-+-+-|_/   +-|_/   +-|K R Qo---+ .-.
            ===  D2|                 | '--o--'     | | R
            Gnd   .-.               ===   | FF1    '-'
                  | | Rpu           Gnd   |    _    |
                  '-' 10k                 |   / |---+    N1,N2,N3,N4=CD40XX
                   |                      +-o(N2|   |        FF1,FF2=74LS73
                   +                          \_|---+
                  Vcc                               |
                                                    - C
                                                    -
                                                    |
                                                   ===
                                                   Gnd

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress