Steppermotor mit Poti regeln


Bastelseite Display + Antriebe Sensoren C++


Stepper- / Schrittmotor regeln

Ein Potentiometer bringt es auf Touren!


Die Regelung

Ein Potentiometer regelt die Spannung
zwischen GND (0 Volt) und Plus (5 Volt).
Diese Zwischenspannungen können als Einstellwert umgerechnet und zur weiteren Steuerung verwendet werden.

Ein Poti

Ein Steppermotor


Der Anschluss des Potis

Der vorhergehende Anschlußplan wird einfach um ein Potentiometer von ca. 470 bis 500 KiloOhm ergänzt. Der linke Anschluß kommt an GND/Minus/schwarz, der rechte an +5/Plus/rot. Der mittlere Anschluß regelt nun alles und wird an "A1" in hellgrün angeschlossen.

Dreht man den Poti nach links, so steht der Motor bei 0, dagegen nach rechts gedreht kommt er in Schwung bis zur vollen Drehzahl.


Anschluß vom Motor,Platine und Poti am Arduino



Öffnet den Sketch in einem eigenen TAB:  stepper-poti-1a.ino     Und hier der Sketch dazu:

/*  stepper-poti-1a.ino
 *
 *  Funktionserklärungen an einem Beispiel
 *  für die Steuerung eines Steppermotors
 *  mit einem 470 kOhm Poti
 *
 *  Download: https://www.brixelweb.de
 */
 
#include <Stepper.h>        // Bindet die Funktions-Bibliothek mit ein
#define STEPS 200           // 200 steps / Schritte für eine Umdrehung
Stepper stepper(STEPS, 8, 9, 10, 11); // Anschlüsse am Arduino

int potianschluss = A1;
int potiwert = 0;
int ausgabe = 0;

void setup()
{
  int i;
  // Voreinstellung alles auf LOW = Stillstand des Motors bei Beginn
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
  digitalWrite(10, LOW);
  digitalWrite(11, LOW);
  Serial.begin(9600);
}

void loop() {
  potiwert = analogRead(potianschluss);
  ausgabe = map(potiwert, 0, 1023, 0, 100);

  Serial.println("-----------------------------------");
  Serial.print("Poti-Wert: ");
  Serial.print(potiwert);
  Serial.print(" - Geschwindigkeit: ");
  Serial.print(ausgabe);
  Serial.print(" - Schritt: ");
  Serial.println(ausgabe/2);

  stepper.setSpeed(ausgabe); // Setzt die Geschwindigkeit auf "100"
  stepper.step(ausgabe/2); // Motor dreht -> 200 steps = 1 Umdrehung
}




Der Unterschied zum Vorgänger-Sketch liegt in diesen ersten drei Zeilen: "int potianschluss = A1;" und "int potiwert = 0;" und "int ausgabe = 0;" Hier wird der Anschluß-Pin und die Variablen für den zusätzlichen Poti festgelegt.

In "loop" dienen die zei Zeilen: "potiwert = analogRead(potianschluss);" = Auslesen des Poti von A1 und übergebe den Wert an die Variable "potiwert".
"ausgabe = map(potiwert, 0, 1023, 0, 100);" ist eine MAP-Funktion, die den Wert der Variablen "potiwert" (0-1023) in "ausgabe" (0-100) umrechnet.

Im Seriellen Monitor wird z.B. folgende Zeile angezeigt "Poti-Wert: 379 - Geschwindigkeit: 37 - Schritt: 18"
Der eingelesene Wert vom Poti "potiwert=379", die Geschwindigkeit "ausgabe=37" und die Schrittweite von der Hälfte der "ausgabe", also 18.

Aktivieren Sie den Seriellen Monitor und drehen dann am Poti!



Ein Wert von "10,23" am Poti ergibt als Geschwindigkeit "1"

  
10,23	1
20,46	2
30,69	3
40,92	4
51,15	5
61,38	6
71,61	7
81,84	8
92,07	9
102,3	10
112,53	11
122,76	12
132,99	13
143,22	14
153,45	15
163,68	16
173,91	17
184,14	18
194,37	19
...
306,9	30
...
409,2	40
...
511,5	50
...
613,8	60
...
716,1	70
...
818,4	80
...
920,7	90
...
1012,77	99
1023	100
	

Ein kleiner Ausschnitt vom Seriellen Monitor

-----------------------------------
Poti-Wert: 0 - Geschwindigkeit: 0 - Schritt: 0
-----------------------------------
Poti-Wert: 24 - Geschwindigkeit: 2 - Schritt: 1
-----------------------------------
Poti-Wert: 124 - Geschwindigkeit: 12 - Schritt: 6
-----------------------------------
Poti-Wert: 321 - Geschwindigkeit: 31 - Schritt: 15
-----------------------------------
Poti-Wert: 379 - Geschwindigkeit: 37 - Schritt: 18
-----------------------------------
Poti-Wert: 466 - Geschwindigkeit: 45 - Schritt: 22
-----------------------------------
Poti-Wert: 584 - Geschwindigkeit: 57 - Schritt: 28
-----------------------------------
Poti-Wert: 693 - Geschwindigkeit: 67 - Schritt: 33
-----------------------------------
Poti-Wert: 725 - Geschwindigkeit: 70 - Schritt: 35
-----------------------------------
Poti-Wert: 744 - Geschwindigkeit: 72 - Schritt: 36
-----------------------------------
Poti-Wert: 780 - Geschwindigkeit: 76 - Schritt: 38
-----------------------------------
Poti-Wert: 780 - Geschwindigkeit: 76 - Schritt: 38
-----------------------------------
Poti-Wert: 779 - Geschwindigkeit: 76 - Schritt: 38
-----------------------------------
Poti-Wert: 858 - Geschwindigkeit: 83 - Schritt: 41
-----------------------------------
Poti-Wert: 1023 - Geschwindigkeit: 100 - Schritt: 50
-----------------------------------

	




Übersicht Seiten Anfang


brixelweb.de