Schrittmotor am Arduino: Unterschied zwischen den Versionen
(→Web Links) |
|||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 6: | Zeile 6: | ||
* eine 12V/2A Stromversorgung, | * eine 12V/2A Stromversorgung, | ||
* Betreibt man den Schrittmotor Treiber ohne Shield, kommt noch ein 100µF Elko dazu. | * Betreibt man den Schrittmotor Treiber ohne Shield, kommt noch ein 100µF Elko dazu. | ||
+ | * Möchte man den Stepper mit micro steps ansteuern, kommen noch drei Jumper nebst drei 2-poligen Stiftleisten dazu | ||
Es werden mindestens zwei I/O Pins des Arduino benötigt. | Es werden mindestens zwei I/O Pins des Arduino benötigt. | ||
− | * Der step Pin für die Schritte, hier wird jeweils ein HIGH LOW | + | * Der step Pin für die Schritte, hier wird jeweils ein HIGH LOW Impuls je Schritt benötigt. |
* Der dir Pin für die Richtung, je nach Pegel HIGH oder LOW, dreht der Schrittmotor in die eine oder andere Richtung. | * Der dir Pin für die Richtung, je nach Pegel HIGH oder LOW, dreht der Schrittmotor in die eine oder andere Richtung. | ||
− | * Optional kommt noch ein enable Pin dazu, über den der Schrittmotor stromlos geschaltet werden kann. | + | * Optional kommt noch ein enable Pin dazu, über den der Schrittmotor stromlos geschaltet werden kann. |
+ | * Optional können auch die 3 micro steps Pins über Arduino I/Os angesteuert werden | ||
[[File:Stepper_wiring.png|600px|Schrittmotor Verdrahtung]] | [[File:Stepper_wiring.png|600px|Schrittmotor Verdrahtung]] | ||
Zeile 85: | Zeile 87: | ||
* [https://www.makerguides.com/a4988-stepper-motor-driver-arduino-tutorial/ Makerguides- A4988 Stepper Motor Driver Arduino Tutorial] | * [https://www.makerguides.com/a4988-stepper-motor-driver-arduino-tutorial/ Makerguides- A4988 Stepper Motor Driver Arduino Tutorial] | ||
− | * [ https://github.com/laurb9/StepperDriver Github - Stepper Driver Library] | + | * [https://github.com/laurb9/StepperDriver Github - Stepper Driver Library] |
[[Category:Elektronik]] | [[Category:Elektronik]] | ||
[[Category:Arduino]] | [[Category:Arduino]] |
Aktuelle Version vom 10. März 2020, 18:27 Uhr
Anschluss des Schrittmotors an den Arduino
für das Betreiben eines Schrittmotor an einem Arduino Board wird folgendes benötigt:
- ein bipolarer Schrittmotor,
- ein Schrittmotor Treiber (A4988 oder kompatibel),
- eine 12V/2A Stromversorgung,
- Betreibt man den Schrittmotor Treiber ohne Shield, kommt noch ein 100µF Elko dazu.
- Möchte man den Stepper mit micro steps ansteuern, kommen noch drei Jumper nebst drei 2-poligen Stiftleisten dazu
Es werden mindestens zwei I/O Pins des Arduino benötigt.
- Der step Pin für die Schritte, hier wird jeweils ein HIGH LOW Impuls je Schritt benötigt.
- Der dir Pin für die Richtung, je nach Pegel HIGH oder LOW, dreht der Schrittmotor in die eine oder andere Richtung.
- Optional kommt noch ein enable Pin dazu, über den der Schrittmotor stromlos geschaltet werden kann.
- Optional können auch die 3 micro steps Pins über Arduino I/Os angesteuert werden
Programm für den Arduino
Das Arduino Demo Programm kommt ohne zusätzliche Library aus und steuert den Schrittmotor für jeweils 200 bis 1000 Schritte mit jeweiligem Richtungswechsel an. Bei Verwendung des Arduino Nano CNC-Shield wird der Schrittmotor der X-Achse angesteuert.
/*Example sketch to control a stepper motor with A4988 stepper motor driver and Arduino without a library. More info: https://www.makerguides.com */
// Define stepper motor connections and steps per revolution:
#define dirPin 2
#define stepPin 5
#define stepsPerRevolution 200
void setup() {
// Declare pins as output:
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
}
void loop() {
// Set the spinning direction clockwise:
digitalWrite(dirPin, HIGH);
// Spin the stepper motor 1 revolution slowly:
for (int i = 0; i < stepsPerRevolution; i++) {
// These four lines result in 1 step:
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
delay(1000);
// Set the spinning direction counterclockwise:
digitalWrite(dirPin, LOW);
// Spin the stepper motor 1 revolution quickly:
for (int i = 0; i < stepsPerRevolution; i++) {
// These four lines result in 1 step:
digitalWrite(stepPin, HIGH);
delayMicroseconds(1000);
digitalWrite(stepPin, LOW);
delayMicroseconds(1000);
}
delay(1000);
// Set the spinning direction clockwise:
digitalWrite(dirPin, HIGH);
// Spin the stepper motor 5 revolutions fast:
for (int i = 0; i < 5 * stepsPerRevolution; i++) {
// These four lines result in 1 step:
digitalWrite(stepPin, HIGH);
delayMicroseconds(500);
digitalWrite(stepPin, LOW);
delayMicroseconds(500);
}
delay(1000);
// Set the spinning direction counterclockwise:
digitalWrite(dirPin, LOW);
//Spin the stepper motor 5 revolutions fast:
for (int i = 0; i < 5 * stepsPerRevolution; i++) {
// These four lines result in 1 step:
digitalWrite(stepPin, HIGH);
delayMicroseconds(500);
digitalWrite(stepPin, LOW);
delayMicroseconds(500);
}
delay(1000);
}