Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

Sensormodule und Visuino - Kapitel 8

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

Schaltungsaufbau

 

 

 

 

 

 

 

 

 

 

 

 

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

Schaltungsaufbau

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.

2502020

Druckversion | Sitemap
© Reinhard Rahner - Gettorf