ericek111

STM32 Arduino Stepper unipolar 5-wire motor driver

Nov 6th, 2017
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.50 KB | None | 0 0
  1. //#include <Stepper.h>
  2.  
  3. #define MOTOR_1 PA3
  4. #define MOTOR_2 PA2
  5. #define MOTOR_3 PA1
  6. #define MOTOR_4 PA0
  7. #define MOTOR_STEPS 400
  8.  
  9. //Stepper stepper(MOTOR_STEPS, MOTOR_1, MOTOR_2, MOTOR_3, MOTOR_4);
  10. int delayTime = 10;
  11. int phase = 0;
  12. int mode = 0;
  13. int stepCount = 0;
  14. unsigned long starttime = 0;
  15.  
  16. void setup() {
  17.   Serial.begin(9600);
  18.   pinMode(MOTOR_1, OUTPUT);
  19.   pinMode(MOTOR_2, OUTPUT);
  20.   pinMode(MOTOR_3, OUTPUT);
  21.   pinMode(MOTOR_4, OUTPUT);
  22.  
  23.   GPIOA->regs->BRR = 0b1111;
  24.   //starttime = milis();
  25. }
  26.  
  27. void loop() {
  28.   /*stepper.step(1);
  29.   Serial.println(stepCount);
  30.   stepCount++;
  31.   delay(500)*/
  32.   if(mode == 0) {
  33.     GPIOA->regs->BRR = 0b1111;
  34.     GPIOA->regs->BSRR = 0b1 << phase;
  35.     phase++;
  36.     if(phase >= 4) phase = 0;
  37.     delay(delayTime);
  38.   } else if(mode == 1) {
  39.     GPIOA->regs->BRR = 0b1111;
  40.     GPIOA->regs->BSRR = 0b11 << phase*2;
  41.     phase++;
  42.     if(phase >= 2) phase = 0;
  43.     delay(delayTime);
  44.   } else if(mode == 2) {
  45.     GPIOA->regs->BRR = 0b1111;
  46.     GPIOA->regs->BSRR = 0b1 << 0;
  47.     delay(delayTime);
  48.     GPIOA->regs->BRR = 0b1 << 3;
  49.     delay(delayTime);
  50.     GPIOA->regs->BSRR = 0b1 << 1;
  51.     delay(delayTime);
  52.     GPIOA->regs->BRR = 0b1 << 0;
  53.     delay(delayTime);
  54.     GPIOA->regs->BSRR = 0b1 << 2;
  55.     delay(delayTime);
  56.     GPIOA->regs->BRR = 0b1 << 1;
  57.     delay(delayTime);
  58.     GPIOA->regs->BSRR = 0b1 << 3;
  59.     delay(delayTime);
  60.     GPIOA->regs->BRR = 0b1 << 2;
  61.     delay(delayTime);
  62.   }
  63.   //delay( 1000 / (milis() - starttime) );
  64.  
  65.  
  66. }
Advertisement
Add Comment
Please, Sign In to add comment