Advertisement
Narayan

WatchWinder

Oct 5th, 2023 (edited)
698
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.98 KB | None | 0 0
  1. #include <Stepper.h>
  2. #include <time.h>
  3.  
  4. #define GOT_HERE()  do {Serial.print('['); Serial.print(__LINE__); Serial.println(']'); Serial.flush();} while(0)
  5.  
  6. const int steps_per_rev = 2038;  
  7.  
  8. #define IN1 8
  9. #define IN2 9
  10. #define IN3 10
  11. #define IN4 11
  12.  
  13. Stepper motor(steps_per_rev, IN1, IN3, IN2, IN4);
  14.  
  15. void setup() {
  16.     srand(time(NULL));
  17.     Serial.begin(115200);
  18. }
  19.  
  20. void WinderMotion(int8_t dir, uint16_t dist, uint8_t speed){
  21.     motor.setSpeed(speed);
  22.     motor.step(dir * dist);
  23. }
  24.  
  25. void loop() {
  26.     uint8_t rdir = 0, rdist = 0, rspd = 0, speed = 0;
  27.     int8_t dir = 0;
  28.     uint16_t dist = 0;
  29.    
  30.     rdir = rand() % 2, rdist = rand() % 3, rspd = rand() % 3;
  31.    
  32.     dir = rdir * 2 - 1;
  33.     dist = steps_per_rev / (1 << rdist);
  34.     speed = (rspd + 1) * 2;
  35.     Serial.print("Dir: ");
  36.     Serial.println(dir);
  37.     Serial.print("Dist: ");
  38.     Serial.println(dist);
  39.     Serial.print("Speed: ");
  40.     Serial.println(speed);
  41.     WinderMotion(dir, dist, speed);
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement