Southerngraceoutfitters.com

  

Beste Artikel:

  
Main / Verwendung des Drehgebers

Verwendung des Drehgebers

In diesem Tutorial erfahren Sie, wie der Drehgeber funktioniert und wie er mit Arduino verwendet wird. Sie können das folgende Video ansehen oder das unten stehende schriftliche Tutorial lesen. Ein Drehgeber ist eine Art Positionssensor, mit dem die Winkelposition einer rotierenden Welle bestimmt wird.

Es erzeugt je nach Drehbewegung ein elektrisches Signal, entweder analog oder digital. Es gibt viele verschiedene Arten von Drehgebern, die entweder nach Ausgangssignal oder nach Sensortechnologie klassifiziert werden. Dieser Drehgeber ist auch als Quadraturgeber oder relativer Drehgeber bekannt und sein Ausgang ist eine Reihe von Rechteckimpulsen. Der Encoder hat eine Scheibe mit gleichmäßig beabstandeten Kontaktzonen, die mit dem gemeinsamen Stift C und zwei weiteren separaten Kontaktstiften A und B verbunden sind, wie unten dargestellt.

Wenn sich die Scheibe Schritt für Schritt zu drehen beginnt, berühren die Stifte A und B den gemeinsamen Stift und die beiden Rechteckwellen-Ausgangssignale werden entsprechend erzeugt. Jeder der beiden Ausgänge kann zur Bestimmung der gedrehten Position verwendet werden, wenn nur die Impulse des Signals gezählt werden.

Wenn wir jedoch auch die Drehrichtung bestimmen möchten, müssen wir beide Signale gleichzeitig berücksichtigen. Wir können feststellen, dass die beiden Ausgangssignale um 90 Grad phasenverschoben zueinander verschoben sind.

Wenn sich der Encoder im Uhrzeigersinn dreht, liegt der Ausgang A vor dem Ausgang B. Wenn wir also die Schritte jedes Mal zählen, wenn sich das Signal von Hoch nach Niedrig oder von Niedrig nach Hoch ändert, können wir zu diesem Zeitpunkt feststellen, dass die beiden Ausgangssignale entgegengesetzt sind Werte. Umgekehrt haben die Ausgangssignale gleiche Werte, wenn sich der Encoder gegen den Uhrzeigersinn dreht.

In Anbetracht dessen können wir unseren Controller leicht so programmieren, dass er die Geberposition und die Drehrichtung liest. Das spezielle Modul, das ich für dieses Beispiel verwenden werde, befindet sich auf einem Breakout-Board und hat fünf Pins.

Ich würde mich über Ihre Unterstützung auf diese Weise freuen! Beschreibung des Codes: Zuerst müssen wir die Pins definieren, an die unser Encoder angeschlossen ist, und einige Variablen definieren, die für das Programm benötigt werden. Im Setup-Bereich müssen wir die beiden Pins als Eingänge definieren, die serielle Kommunikation zum Drucken der Ergebnisse auf dem seriellen Monitor starten sowie den Anfangswert des Ausgangs A lesen und den Wert in die Variable aLastState eingeben. Dann lesen wir im Schleifenabschnitt die Ausgabe A erneut, aber jetzt setzen wir den Wert in die Variable aState.

Wenn sich der Zustand des Ausgangs B vom Zustand des Ausgangs A unterscheidet, wird der Zähler um eins erhöht, andernfalls wird er verringert. Am Ende müssen wir nach dem Drucken der Ergebnisse auf dem seriellen Monitor die Variable aLastState mit der Variablen aState aktualisieren.

Das spezielle Modul, das ich habe, zählt 30 pro vollem Zyklus. Zusätzlich zu diesem grundlegenden Beispiel habe ich ein weiteres Beispiel für die Steuerung einer Schrittmotorposition mithilfe des Drehgebers erstellt. Sie erwähnen jedoch, dass eine vollständige Drehung durch 30 Schritte verursacht wird, wie in der Zählervariable dargestellt. Ja du hast Recht. Der volle Zyklus des Drehgebers beträgt 30 Schritte. Demnach können Sie den Arduino so programmieren, dass er macht, was Sie wollen.

Wenn Sie beispielsweise möchten, dass 1 Encoderzyklus 1 Motorrad ist, müssen Sie den Arduino so programmieren, dass er 6 sendet. Gut gemacht, Freund !!! Ich hatte ein Problem mit der Maschinenelektronik. Kannst du es lösen? Hench, ein Kühlsystem ist zur Kühlung dieses Thyristors eingebaut. Das Kühlsystem besteht aus einem 4-nos-Kühler mit Wassersprühdüse oben und Axialventilatormotor unten für die Zwangsluftkühlung.

Diese vier Kühler befinden sich im Auto-Modus. Wenn die Temperatur zu sinken beginnt, beginnen die Kühler, nacheinander die ersten Vorspannungen abzuschalten, indem sie Befehle an die SPS senden. In jedem Kühler sind Klappen installiert. Diese Dämpfer hatten drei Positionen: Nehmen wir an, die 4 Kühler sind jetzt in Betrieb. Wenn die Temperatur aufgrund von Umgebungstemperatur oder reduzierter Leistung zu sinken beginnt, sendet die SPS einen Befehl an die Kühler, um die Klappe von vollständig geöffnet auf halb geöffnet zu schließen.

Nehmen wir an, die SPS sendet einen Befehl an den Kühler Nr. Also den Kühler Nr.: Dann überwacht die SPS die Temperatur. Wenn die Temperatur weiter sinkt, sendet die SPS einen Befehl an den Kühler. Nein: Das ist das Hauptprinzip des Kühlsystems in der HGÜ. Jetzt haben wir das Problem, dass der Kühler nicht im Auto-Modus arbeiten kann, da die Dämpferstatuen nicht an die SPS gesendet werden. Wir bekommen auch keine Unterstützung vom OEM. Ich hatte die Idee, einen Encoder an der Dämpfermotorwelle anzubringen. Beachten Sie, dass der Klappenmotor ein sich langsam bewegender Motor ist.

Es dauert ungefähr 3 Minuten, um den Dämpfer von der vollständig geöffneten in die vollständig geschlossene Position und umgekehrt zu bewegen. Können Sie mir bei der Programmierung helfen und welchen Encodertyp ich wählen soll? Danke Jameel! Ihre Idee klingt gut und es könnte möglich sein, dies zu tun. Bisher konnte ich es über die serielle Schnittstelle verwenden. Ich wollte ursprünglich eine kompilierte Roboter-Basis-App verwenden, wollte aber eine eigenständige Einrichtung, vorzugsweise batteriebetrieben.

Was mir in den Sinn kam, war die Verwendung eines Drehgebers zum Einstellen der Frequenz. Sie haben genau den Code, den ich gesucht habe, danke. Ich habe deine kopiert und sie ohne Fehler kompiliert. Wenn ich die Encoder bekomme, werde ich Ihren Code in meinen integrieren. Ich werde wahrscheinlich einen separaten Druckknopf verwenden, da die Encoder, die ich bekomme, keinen integrierten Schalter haben. Der DDS erzeugt ein stabiles Signal bis zu 40 MHz und ist eine schöne Labortischsignalquelle, die meinen Generator für die Hausbrühfunktion ergänzt.

Sobald mein Projekt abgeschlossen ist, teile ich Ihnen gerne mein Design mit und beabsichtige, Sie in meinem endgültigen Code zuzuordnen. Hallo, danke für deine großartige Arbeit… Ich arbeite jetzt an einem Projekt mit Drehgeber mit LCD-Anzeige des Winkels. Habe ich Ihr vollständiges schematisches Diagramm von Beispiel 2? Vielen Dank. Haben Sie eine Idee, den Code für den 28BYJ-48-Motor zu ändern? Hallo Dejan, ich bin interessiert und möchte dieses Projekt erstellen. Könnten Sie mir bitte die Details des Schaltplans und der dort verwendeten Module mitteilen?

Nun ist alles schon erklärt. In diesem Tutorial erfahren Sie, wie Sie den Encoder anschließen. Wenn Sie mein Tutorial zur Schrittmotorsteuerung lesen, finden Sie die Schaltpläne zum Verbinden des Treibers und des Schrittmotors. Tolles Projekt, es hat mir sehr gut gefallen!

Basierte es auf dem ppr? Meine Inkremente sind immer 2 statt 1. Ich habe auch ein paar Schaltkreise hinzugefügt, um das Entprellen zu beseitigen, aber auf keinen Fall. Könnte es sein, dass der von Dejan verwendete Encoder nur 2 Übergänge pro Arretierung hatte und Ihrer 4?

Wenn Sie den Knopf drehen, gehen die 2-Pin-Zustände 00, 10, 11, 01 usw. Einige Encoder haben die Arretierungen, wenn die Pins bei 11 sind, und andere, wenn sie bei 00 sind. Ihre können bei einer Arretierung auf 11 gesetzt sein. nicht 00, aber das Prinzip ist das gleiche.

Sie müssen diesen Code ein wenig hacken, damit er den zusätzlichen Schritt ignoriert. Tolles Projekt fast was ich brauche. Ist es möglich, dass sich das Arduino an die letzte Position des Motors von 68 Grad erinnert?

Ich glaube nicht, dass irgendjemand dies schaffen kann, da der ButtonPin nirgendwo hin führt. Ein Schaltplan wird benötigt, da wir alle unterschiedliche Schritttreiber verwenden. Am besten schreiben Sie dies in Instructables. Zuerst war ich aufgeregt, aber jetzt nach 4 Stunden bekam ich nur noch Kopfschmerzen. Das Schrittbeispiel finden Sie in meinem ausführlichen Tutorial für den A4988-Treiber.

Ich denke, es gibt einen kleinen Fehler im ersten Codebeispiel. Dies bedeutet, dass ein Drehgeberschritt zwei Änderungen am Zähler vornimmt. Genau. Der Zähler wechselt zweimal für einen Wellenschritt, wenn Sie die Bedingung aState! Hallo, ich komme aus Argentinien. Tolles Projekt !! Ich bin deinen Schritten gefolgt und es funktioniert. Obwohl ich ein Problem habe! Wenn ich es langsam drehe, macht es den Zähler gut, aber wenn ich schnell drehe, ist es unkontrolliert und wiederholt Schritte! Ich habe einen Encoder von einem Epson-Drucker verwendet. Könnte es sein, dass der Encoder eine hohe Auflösung hat?

Wird es mit diesem Encoder funktionieren können? Von schon vielen Dank !!

(с) 2019 southgraceoutfitters.com