Skip to content

Commit 3661ed6

Browse files
authored
Merge pull request #9 from FHNW-IP5-IP6/feat/stepmotor
feat: added step motor docs
2 parents 40ca28c + 7629715 commit 3661ed6

File tree

3 files changed

+67
-0
lines changed

3 files changed

+67
-0
lines changed

content/german/basics/crowpi.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ Komponenten aufgeführt:
5757
| [PIR Motion Sensor]({{< ref "components/pir-motion-sensor" >}}) | Erkennen von Bewegung mit passivem Infrarot | GPIO | {{< dip-switches >}} |
5858
| [Relais]({{< ref "components/relay" >}}) | Schaltung eines elektrischen Kontakts | GPIO | {{< dip-switches >}} |
5959
| [RFID]({{< ref "components/rfid" >}}) | Kontaktloses Lesen und Schreiben von Karten | SPI | {{< dip-switches >}} |
60+
| [Schrittmotor]({{< ref "components/step-motor" >}}) | Bewegen eines Schrittmotors | GPIO | {{< dip-switches 11 12 13 14>}} |
61+
| [Sound Sensor]({{< ref "components/sound-sensor" >}}) | Erkennen von Lärm oder Stille | GPIO | {{< dip-switches >}} |
6062
| [Tilt Sensor]({{< ref "components/tilt-sensor" >}}) | Erkennt aktuelle Neigung (links/rechts) von CrowPi | GPIO | {{< dip-switches 10 >}} |
6163
| [Touch Sensor]({{< ref "components/touch-sensor" >}}) | Erkennen von Berührungen | GPIO | {{< dip-switches >}} |
6264
| [Ultraschall Distanz Sensor]({{< ref "components/ultrasonic-sensor" >}}) | Messung von Distanzen mit Ultraschall | GPIO | {{< dip-switches >}} |
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
---
2+
title: Schrittmotor
3+
tags: ["gpio"]
4+
---
5+
6+
## Funktionsweise
7+
8+
Der Schrittmotor, bestehend aus festem Stator und bewegenden Rotor, erhält sein Drehmoment durch unterschiedlich ausgerichtete Magnetfelder.
9+
Der Rotor dreht sich dabei immer so, dass sich ein möglichst starker magnetischer Fluss ausbildet. Anders als bei anderen Motoren befinden
10+
sich beim Schrittmotor jedoch nur im Stator Spulen. Durch gezieltes Ein- und Ausschalten dieser Spulen wird der Motor in Drehung versetzt.
11+
Mit korrekter Abfolge der Steuerung lassen sich so Vorwärts und Rückwärtslauf implementieren. Der Name des Motors kommt aus der Tatsache das
12+
sich ebenfalls durch Steuerung der Spulen einzelne Schritte mit dem Motor bewegen lassen. Die Schrittgrösse ist dabei abhängig vom
13+
physikalischen Aufbau des Schrittmotors. Um die Position des Rotors zu bestimmen, genügt es, ausgehend von einer Ausgangslage die Schritte
14+
im bzw. gegen den Uhrzeigersinn zu zählen und mit dem Schrittwinkel zu multiplizieren.
15+
16+
Die Schrittmotoren bieten folgende Vorteile:
17+
- Genaue Positionierung, keine kumulierten Fehler
18+
- Haltemoment in Ruhelage
19+
- Günstige Antriebslösung mit hoher Genauigkeit
20+
- Einfacher Aufbau des Treibers
21+
22+
{{< img alt="Anschluss für Schrittmotor" src="components/step-motor.jpg" height="500px" >}}
23+
24+
## Voraussetzungen
25+
26+
### DIP Switches
27+
28+
Für diese Komponente müssen vier DIP Switches des rechten Blockes gesetzt werden. Die Stellung der DIP Switches sollte anschliessend so
29+
aussehen:
30+
31+
{{< dip-switches 11 12 13 14 >}}
32+
33+
## Verwendung
34+
35+
Nachfolgend wird die Verwendung der Klasse {{< javadoc class="com.pi4j.crowpi.components.StepMotorComponent" >}} beschrieben.
36+
37+
### Konstruktoren
38+
39+
| Konstruktor | Bemerkung |
40+
|:------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
41+
| `StepMotorComponent(com.pi4j.context.Context pi4j)` | Initialisiert einen Schrittmotor mit den Standardeinstellungen für den CrowPi. |
42+
| `StepMotorComponent(com.pi4j.context.Context pi4j, int[] addresses, int[][] steps, long pulseMilliseconds)` | Initialisiert einen Schrittmotor mit frei wählbaren Pins. Diese werden mit dem Parameter `steps` an entsprechende Schritte des Motors gekoppelt. Zusätzlich kann noch die Pulslänge übergeben werden. |
43+
44+
### Methoden
45+
46+
| Methode | Bemerkung |
47+
|:--------------------------------|:-------------------------------------------------------------------------------------------------------------------------|
48+
| `void turnDegrees(int degrees)` | Dreht die Achse des Schrittmotors um den übergebenen Winkel in Grad [°]. Ein negativer Winkel dreht den Motor rückwärts. |
49+
| `void turnForward(int steps)` | Dreht den Motor um die spezifizierte Anzahl Schritte vorwärts. |
50+
| `void turnBackward(int steps)` | Dreht den Motor um die spezifizierte Anzahl Schritte rückwärts. |
51+
52+
53+
## Beispielapplikation
54+
55+
Die Beispielanwendung zeigt auf einfache Art und Weise wie die verschiedenen Methoden der `StepMotorComponent` zu verwenden sind. Als Erstes
56+
wird nach einer kurzen Warnung der Motor um 50 Schritte vorwärts gedreht. Anschliessend dreht der Motor rückwärts ebenfalls um 50 Schritte.
57+
Der Motor ist also wieder in Ausgangsposition. Als letztes werden nun mithilfe eines `for-loops` einige Male hin und her gedreht. Dazu wird
58+
nun die `turnDegrees` Methode verwendet.
59+
60+
{{< code file="src/main/java/com/pi4j/crowpi/applications/StepMotorApp.java" language="java">}}
61+
62+
## Weitere Möglichkeiten
63+
64+
- Ein 3D-Drucker könnte aus der Kombination von mehreren Schrittmotoren gebaut werden.
65+
- Automatisches Heizventil in Kombination mit einem Temperatursensor.
2.04 MB
Loading

0 commit comments

Comments
 (0)