Schrittmotor Beispiel

Dependencies:   StepperMotorUni mbed

https://developer.mbed.org/media/uploads/okano/1phase_drive.gif

Ein Schrittmotor ist ein Synchronmotor, bei dem der Rotor (drehbares Motorteil mit Welle) durch ein gesteuertes, schrittweise rotierendes, elektromagnetisches Feld der Statorspulen (nicht drehbarer Motorteil) um einen minimalen Winkel (Schritt) oder sein Vielfaches gedreht werden kann.

Ein Schrittmotor hat eine fixe Schrittanzahl pro Umdrehung. Beim verwendeten 28BYJ-48 sind es 2048 Schritte.

Zur erstmaligen Positionierung wird, in der Regel, ein Endstop Schalter verwendet. CNC Maschinen besitzen zusätzlich, wegen der Verletzungsgefahr einen Notstopp Schalter mit Einrastfunktion.

Ein unipolarer Schrittmotor benötigt die Schrittmotor Library und einen IC Treiber (wie ULN2803N) und 4 Digitale Pin's.

Der Schrittmotor wird auf einen der drei Stepper1-3 Header mit dem roten Kabel nach unten gesteckt.

Anwendungen

  • Typische Anwendungsgebiete sind Drucker oder der Antrieb des Schreib-/Lesekopfes in einem CDROM Laufwerken. Aufgrund ihrer hohen Genauigkeit werden sie auch in computergesteuerten Werkzeugmaschinen zur Positionierung der Werkzeuge verwendet. Durch die ständig sinkenden Kosten für die Ansteuerelektronik werden sie auch zunehmend im Konsumgüterbereich verwendet. So sind in Kraftfahrzeugen der mittleren und gehobenen Kategorie heute bis über 50 Schrittmotoren im Einsatz, die Betätigung der vielen Klappen einer automatischen Heizungs- und Klimaanlage ist dafür ein Beispiel.
Committer:
marcel1691
Date:
Mon Mar 23 17:16:13 2015 +0000
Revision:
0:3fc0439c42fa
Child:
1:5abeb7e4adbb
Schrittmotor Beispiel

Who changed what in which revision?

UserRevisionLine numberNew contents of line
marcel1691 0:3fc0439c42fa 1 /** Schrittmotor Beispiel
marcel1691 0:3fc0439c42fa 2 */
marcel1691 0:3fc0439c42fa 3 #include "mbed.h"
marcel1691 0:3fc0439c42fa 4 #include "StepperMotorUni.h"
marcel1691 0:3fc0439c42fa 5
marcel1691 0:3fc0439c42fa 6 StepperMotorUni motor( PTB18, PTB19, PTC1, PTC8 );
marcel1691 0:3fc0439c42fa 7
marcel1691 0:3fc0439c42fa 8 int main()
marcel1691 0:3fc0439c42fa 9 {
marcel1691 0:3fc0439c42fa 10 // Motordrehzahl
marcel1691 0:3fc0439c42fa 11 printf( "Schrittmotor Test\n" );
marcel1691 0:3fc0439c42fa 12 motor.set_pps( 300 );
marcel1691 0:3fc0439c42fa 13
marcel1691 0:3fc0439c42fa 14 while ( 1 )
marcel1691 0:3fc0439c42fa 15 {
marcel1691 0:3fc0439c42fa 16 printf( "vorwaerts\n" );
marcel1691 0:3fc0439c42fa 17 motor.move_steps( 1024 ); // halbe Umdrehung (180°)
marcel1691 0:3fc0439c42fa 18 wait( 5.0 );
marcel1691 0:3fc0439c42fa 19
marcel1691 0:3fc0439c42fa 20 printf( "rueckwaerts\n" );
marcel1691 0:3fc0439c42fa 21 motor.move_steps( -1024 );
marcel1691 0:3fc0439c42fa 22 wait( 5.0 );
marcel1691 0:3fc0439c42fa 23 }
marcel1691 0:3fc0439c42fa 24 }