Stepper_01.ino 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #include <MobaTools.h>
  2. /* Demo zum Anschluß eines unipolaren Stepmotors 28BYJ-48
  3. * Der Schrittmotor kann wahlweise direkt über 4 frei wählbare Pins, oder über die SPI-
  4. * Schnittstelle und Schieberegister angeschlossen werden.
  5. * SPI belegt beim UNO oder nano die Pins 10(SS),11(MOSI) und 13(SCK)
  6. * Pin 12 (MISO) wird zwar nicht genutzt, aber von der HW belegt
  7. */
  8. Stepper4 Step1(4096); // HALFSTEP ist default
  9. Stepper4 Step2(2048,FULLSTEP);
  10. void setup() {
  11. Step1.attach( 4,5,6,7 ); // Anschluß an digitalen Ausgängen
  12. Step2.attach( SPI_1 ); // an die SPI-Schnittstelle muss ein Schieberegister angschlossen werden
  13. //
  14. Step1.setSpeed( 60 ); // = 6 U/Min
  15. Step2.setSpeed( 120 ); // = 12 U/Min
  16. Step2.rotate( -1 ); // Motor 2 dreht dauerhaft rückwärts
  17. Step1.setZero(); // Referenzpunkt für Motor 1 setzen
  18. Step1.write(360); // 1 Umdrehung vorwärts
  19. while( Step1.moving() ); // warten bis die Bewegung abgeschlossen ist
  20. delay(1000); // 1 Sec stillstehen
  21. Step1.write(0); // 1 Umdrehung zurück zum Referenzpunkt
  22. while( Step1.moving() ); // warten bis Stillstand
  23. delay(1000); // Motor steht 1 sec.
  24. Step1.doSteps(4096); // 4096 Schritte vorwärts ( = auch 1 Umdrehung )
  25. while( Step1.moving() );
  26. delay(1000);
  27. Step1.write(0); // 1 Umdrehung zurück zum Referenzpunkt ( auch bei doSteps wird die
  28. while( Step1.moving() ); // Position verfolgt
  29. delay(1000); // Motor steht 1 sec.
  30. Step1.detach(); // Motor deaktivieren
  31. Step1.attach(7,6,5,4); // mit umgekehrter Reihenfolge der Pins aktivieren
  32. Step1.doSteps(4096); // 'vorwärts' ist jetzt andersherum!
  33. while( Step1.moving() );
  34. delay(1000);
  35. }
  36. void loop() {
  37. }