Advertisement
EonZombiecrafter

Arduino stepper controll

Mar 14th, 2019
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. #include <Stepper.h>
  3.  
  4. // Å tevilo korakov za 360 stopinjski obrat
  5. #define KOB 200
  6.  
  7. //priklop motorja 1
  8. #define MX1 32
  9. #define MX2 33
  10. #define MX3 34
  11. #define MX4 35
  12.  
  13. //priklop motorja 2
  14. #define MY1 40
  15. #define MY2 41
  16. #define MY3 42
  17. #define MY4 43
  18.  
  19. //priklop motorja 3
  20. #define MZ1 36
  21. #define MZ2 37
  22. #define MZ3 38
  23. #define MZ4 39
  24.  
  25. Stepper motorX(KOB, MX1, MX2, MX3, MX4);
  26. Stepper motorY(KOB, MY1, MY2, MY3, MY4);
  27. Stepper motorZ(KOB, MZ1, MZ2, MZ3, MZ4);
  28.  
  29. //trenutna pozicija po korakih
  30. int kX = 0;
  31. int kY = 0;
  32. int kZ = 0;
  33. String koX;
  34. String koY;
  35. String koZ;
  36.  
  37. void setup() {
  38.   Serial.begin(9600);
  39.  
  40.   //dolocanje hitrosti motorjev
  41.   motorX.setSpeed(30);
  42.   motorY.setSpeed(30);
  43.   motorZ.setSpeed(30);
  44. }
  45.  
  46. void loop() {
  47.   if (Serial.available())
  48.     {
  49.         String data = Serial.readStringUntil(';');
  50.         //X,koraki;
  51.         //Y,koraki;
  52.         //Z,koraki;
  53.         //REF;
  54.      
  55.     String cmd = "";
  56.     String koraki = "";
  57.  
  58.    
  59.  
  60.       int c = true;
  61.       for (int i = 0; i < 16; i++)
  62.         {
  63.           if (data[i] == ';') return;
  64.           if (c)
  65.             {
  66.               if (data[i] != ',') cmd += data[i];
  67.               else c = false;
  68.             }
  69.           else if (data[i] != ',') koraki += data[i];
  70.  
  71.         }
  72.  
  73.        
  74.         if (cmd == "X")
  75.           {
  76.             motorX.step(koraki.toInt());
  77.             kX += koraki.toInt();
  78.  
  79.             Serial.println("Ukaz: "+cmd+" Koraki: "+koraki);
  80.             printData();
  81.           }
  82.         else if (cmd == "Y")
  83.           {
  84.             motorY.step(koraki.toInt());
  85.             kY += koraki.toInt();
  86.  
  87.             Serial.println("Ukaz: "+cmd+" Koraki: "+koraki);
  88.             printData();
  89.           }
  90.         else if (cmd == "Z")
  91.           {
  92.             motorZ.step(koraki.toInt());
  93.             kZ += koraki.toInt();
  94.  
  95.             Serial.println("Ukaz: "+cmd+" Koraki: "+koraki);
  96.             printData();
  97.           }
  98.         else if (cmd == "REF")
  99.           {
  100.             motorX.step(-kX);
  101.             motorZ.step(-kZ);
  102.             motorY.step(-kY);
  103.  
  104.             kX = 0;
  105.             kY = 0;
  106.             kZ = 0;
  107.            
  108.             printData();
  109.           }
  110.       }
  111. }
  112. void printData()
  113.   {
  114.             koX = kX;
  115.             koY = kY;
  116.             koZ = kZ;
  117.            
  118.             Serial.println("X: "+koX+ " Y: "+koY+" Z: "+koZ);
  119.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement