In diesem Kapitel werden angesprochen
- Modul mit Drehgeber (rotary encoder - Elegoo)
- Schrittmotor und Drehgeber
Module sind immer herstellerspezifisch aufgebaut und können sich deshalb - bei (
Namensbelegung - voneinander unterscheiden. Vor dem Aufbau einer Schaltung ist das Studium der zugehörigen Datenblätter deshalb unerlässlich.
1 - Drehgeber (rotary encoder)
Abb. 1
Drehgeber Modul (Elegoo)
Wie funktioniert ein Drehgeber eigentlich?
Über die beiden Kanäle CLK und DT lassen sich Rückschlüsse ziehen, ob der Drehgeber nach rechts oder links bewegt wird.
In den Abb. 2a,b wird das Funktionsprinzip eines Drehreglers erläutert. Im realen Experiment lässt sich über ein Oszillogramm der tatsächliche Verlauf der
Spannungsgrößen verfolgen.
Inkremental- oder Drehgeber Modul
(Elegoo)
Das Inkrementalgeber-Modul von Elegoo ist ein zweispurig ausgeführter Drehgeber, der die Drehbewegung in
zweiphasige Rechtecksignale (Kanal A, Kanal B) mit einer bestimmten Phasendifferenz umwandelt, die dann zur Steuerung der Winkelbewegung verwendet werden. Kanal A wird auf dem Modul mit CLK, Kanal B mit DT bezeichnet.
Abb. 2a
Der zweispurig ausgeführte Drehgeber (Spur 1: CLK, Spur 2: DT) zeigt eine Phasendifferenz zwischen den beiden Spuren auf.
Bei Rechtsdrehung liefert jede Spur nach einem Phasensprung (CLK) eine 1/1 oder 0/0, bei Linksdrehung 1/0 oder 0/1.
Bild 2b
Entscheidend ist, ob bei fallender/steigender Flanke von CLK beide Kanäle (DT, CLK) auf gleichem Potential liegen oder unterschiedliche Werte aufweisen.
2 - Stellmotor (stepper motor)
Bild 2c
Schrittmotor (stepper motor) 28BYJ-49
Schrittmotoren enthalten einen drehbar gelagerten Magneten und mehrere festsitzende Magnetspulen.Durch gezieltes schrittweises Ein- und Umschalten einzelner
Magnetspulen kann sich der drehbare Anker stabil in eine jeweils bestimmte Position ausrichten und im Idealfall eine kontinuierliche Drehbewegug ausführen.Dazu müssen im Motor jeweils benachbarte
Spulen ein- bzw. ausgeschaltet werden. Je schneller das geschieht, umso schneller dreht sich der Anker.
Die Bitfolge an den vier Anschlussdrähten ergibt dann folgendes Schema:
Spule_1 |
Spule_2 |
Spule_3 |
Spule_4 |
Steuerwert
|
1 |
0 |
0 |
0 |
8 - 1000 |
0 |
1 |
0 |
0 |
4 - 0100 |
0 |
0 |
1 |
0 |
2 - 0010 |
0 |
0 |
0 |
1 |
1 - 0001 |
Übung 1 - Rohdaten eines Drehregebers aufnehmen
Abb. 3
Schaltungsaufbau mit Arduino Nano und Drehregler-Modul (Elegoo).
(entworfen mit: Fritzing)
1 - Pflichtenheft oder Was soll die Schaltung können?
- Entwickle für ein Drehregler-Modul (hier: Elegoo) ein Programm, das die Rohdaten erfasse und im seriellen
Monitor ausgibt.
2 - Material
- Arduino Board, hier: Arduino-Nano
- Steckbrett und Steckdraht (Ma-Ma, Fe-Ma)
- Arduino IDE und Visuino auf dem Rechner bereits installiert
3 - Objektanordnung
Schritt 1 - Ard-Board festlegen
Starte das Programm Visuino und wähle in der Kopfzeile des Arduino-Blocks über das Werkzeug-Icon das Board Arduino Nano.
Schritt 2 - Objekte/ Elemente auswählen
- Gib in Filtersuche "rotary encoder" ein, wähle das Objekt "Digital" (s. Abb. 3a); ziehe es in die
Arbeitsfläche.
- Gib in Filtersuche "counter" ein, wähle das Objekt "Up/Down Counter" (s. Abb. 3b); ziehe es in die
Arbeitsfläche.
Abb. 3a - Filtersuche "rotary encoder" -> "Digital"
Abb. 3b - Filtersuche "counter" -> "Up/Down Counter"
Schritt 3 - Objekte/Elemente verbinden mit Ard-Board
- Stelle die Verbindungen wie in Abb. 4 gezeigt her.
Abb. 4
Verbindungen von Ard Nano, Rotary Encoder und Counter.
Schritt 4 - Kompilieren und Hochladen des Programmcodes
-
Öffne in Visuino unten rechts durch Anklicken des roten Buttons das Arbeitsmenü, klicke den Reiter "Build" und anschließend den Button
"Compile/Build and Upload" an. Wenn kein Fehler aufgetreten ist, wird das Programm nach kurzer Zeit in den Controller geladen sein. Viel Spaß beim Experimentieren!
Ausgabe der Rohdaten im Terminalfenster
Gestartet wird mit der Ausgabe 0 im Terminalfenster. Bei Rechtsdrehung des Reglers werden die Zahlen von 0 beginnend inkrementiert, bei Linksdrehung entsprechend
dekrementiert (s. Abb. 5).
Abb. 5
Rohdatenausgabe im seriellen Terminafenster.mit Kontaktprellen
Eigenschaften festlegen
Im Fenster "Eigenschaften" (properties) lässt sich der Anfangswert (Initial Value) der Ausgabezahlen vorgeben sowie Prellungen des Drehgebers über die Einstellung
"Debounce" minimieren.
Abb. 6 - Feineinstellung für die Komponente Rotary Encoder Sensor. Der Startwert (Initial Value) wird auf 0 gesetzt (Voreinstellung).
Ergebnisse
- Kontaktprellen: Im Terminalfenster werden bei Rechtsdrehung des Drehgebers die Zahlen - bei Null beginnend - hochgezählt, bei Linksdrehung
zurückgezählt. Tritt Kontaktprellen auf, treten Anomalien bei der Werteanzeige im Terminalfenster auf (s. Abb. 6a -links)
- Entprellen: Beheben bzw. Verringern lässt sich Kontaktprellen durch Erhöhung des Debounce Intervals im
Eigenschaften-Fenster der Komponente RotaryEncoderSensor1 von 0 auf 30 (s. Abb. 6a - rechts)
Abb. 6a - Kontaktprellen
Bei kontinuierlicher Rechtsdrehung am Drehgeber gibt es durch Kontaktprellen Abweichungen beim Hochzählen.(Bild lks)
Übung 2 - Drehgeber und Schrittmotor
Abb. 7 - Bei dieser Übung muss zwingend eine externe Spannungsquelle angeschlossen werden.
1 - Pflichtenheft oder Was soll die Schaltung können?
- Entwickle für einen Schrittmotor mit Motortreiber Modul und einem Drehgeber ein Programm, mit dem die Drehbewegung der Motorachse eingestellt werden kann (Rechts-
und Linkslauf).
2 - Material
- 1x Arduino Board - hier Arduino UNO WiFi
- 1x Rotary Encoder Modul
- 1x Schrittmotor 28BYJ-48 mit Schrittmotor-Treiber Modul mit IC ULN2003AN
- 1x Steckbrett und diverse Steckdrähte (MF, MM)
- Arduino IDE und Visuino auf dem Rechner bereits installiert.
3 - Objektanordnung
Schritt 1 - Ard-Board festlegen
Starte das Programm Visuino und wähle in der Kopfzeile des Arduino-Blocks über das Werkzeug-Icon das Board Arduino UNO WiFi.
Schritt 2 - Objekte/ Elemente auswählen
- Gib in Filtersuche "Rotary Encoder" ein, wähle das Objekt "Digital" (s. Abb. 3a); ziehe es in die
Arbeitsfläche.
- Gib in Filtersuche "Multiply Analog" ein, wähle das Objekt "MultiplyByValue" und ziehe es in die
Arbeitsfläche.
- Gib in Filtersuche "4 Wire" ein, wähle das Objekt "4 Wire Stepper Motor" und ziehe es in die
Arbeitsfläche.
Schritt 3 - Objekte/Elemente verbinden mit Ard-Board
- Stelle die Verbindungen der Komponenten her (s. Abb. 8).
Abb. 8 - Anordnung der Komponenten im Visuino-Arbeitsfeld
Miteinander verbunden sind:
- Arduino Pin [5V] mit Schrittmotor Treiber Modul Pin +
- Arduino Pin [GND] mit Schrittmotor Treiber Modul Pin –
- Arduino digital Pin [6] mit Objekt Stepper1 Out Pin [0]
- Arduino digital Pin [7] mit Objekt Stepper1 Out Pin [1]
- Arduino digital Pin [8] mit Objekt Stepper1 Out Pin [2]
- Arduino digital Pin [9] mit Objekt Stepper1 Out Pin [3]
- Arduino Out digital Pin [2] mit Objekt RotaryEncoderSensor1 Direction (B)
- Arduino Out digital Pin [3] mit Objekt RotaryEncoderSensor1 Clock (A)
- Objekt RotaryEncoderSensor1 Out mit Objekt MultiplyByValue1 In
- Objekt MultiplyByValue1 Out mit Objekt Stepper1 Steps Per Second
4 - Eigenschaften festlegen
Im Fenster "Eigenschaften" (properties) erfolgen die Feineinstellungen der einzelnen Objekte/Komponenten..
Abb. 9a
Eigenschaften-Fenster der Komponente MultiplyByValue1
Abb. 9b
Eigenschaften-Fenster der Komponente Stepper1
Abb. 9c
Eigenschaften-Fenster der Komponente RotaryEncoderSensor1
Schritt 4 - Kompilieren und Hochladen des Programmcodes
-
Öffne in Visuino unten rechts durch Anklicken des roten Buttons das Arbeitsmenü, klicke den Reiter "Build" und anschließend den Button
"Compile/Build and Upload" an. Wenn kein Fehler aufgetreten ist, wird das Programm nach kurzer Zeit in den Controller geladen sein. Viel Spaß beim Experimentieren!
Ergebnisse
- Durch drehen des Stellknopfes am Drehgeber verändert sich die Impulsfolge für den Stellmotor. Rechtsdrehung erhöht die Frequenz (sichtbar an den vier LEDs auf dem
Motortreiber-Modul) -> der Motor dreht schneller, Linksdrehung setzt die Frequenz zurück.-> der Motor dreht langsamer; ab einem bestimmten Punkt dreht sich die Laufrichtung des Ankers
um.
- Eine Achsumdrehung des Stellmotors benötigt - je nach Impulsfolge - ca. 30 Sek. bis mehrere Minuten.
- Deutlich beschleunigen lässt sich die Drehgeschwindigkeit, wenn im Eigenschaften-Fenster der Komponente Stepper1 der Wert von Steps per
Second von 0 auf zum Beispiel 200 erhöht wird.