Advertisement
Thewest123

Arduino Stepper motor

May 1st, 2022 (edited)
628
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.63 KB | None | 0 0
  1. // #include <iostream>
  2. // #include <iomanip>
  3. // #include <chrono>
  4. // #include <thread>
  5.  
  6. // using namespace std;
  7.  
  8. // Funkce, ktera pobezi celou dobu a posouva motor
  9. void posunMotor(int pocetSekund, int pocetStupnu)
  10. {
  11.     // Pocet kroku motoru na 1 stupen posunu
  12.     double KOEFICIENT_KROKU = 5.8;
  13.  
  14.     // Pokud chceme za 60 minut ubehnout 180 stupnu
  15.     double pocetStupnuZaMs = (double)pocetStupnu / (double)(pocetSekund * 1000); // 180 / (3600*1000) = 0.00005
  16.  
  17.     // Tedy kazdou ms urazit 0.00029 kroku
  18.     double pocetKrokuZaMs = pocetStupnuZaMs * KOEFICIENT_KROKU; // 0.00005 * 5.8 = 0.00029
  19.  
  20.     // int DEBUG_stepCount = 0;
  21.     // double DEBUG_ubehloStupnu = 0.0;
  22.  
  23.     double castKroku = 0.0;
  24.  
  25.     // Krokovat dokud nenastane pozadovany pocet sekund (tedy napr 60 minut = 3600 sekund)
  26.     for (int ubehloSekund = 0; ubehloSekund < pocetSekund; ubehloSekund++)
  27.     {
  28.         for (int pocetMs = 0; pocetMs <= 1000; pocetMs++)
  29.         {
  30.             castKroku += pocetKrokuZaMs;
  31.             // DEBUG_ubehloStupnu += pocetStupnuZaMs;
  32.  
  33.             if (castKroku > 1.0)
  34.             {
  35.                 // Pokud ano, posuneme o 1 krok a resetujem castKroku (resp. odebereme ten 1 krok)
  36.                 castKroku -= 1.0;
  37.  
  38.                 // DEBUG_stepCount++;
  39.                 // cout << "Krok: " << DEBUG_stepCount << " | Stupen: " << fixed << setprecision(3) << DEBUG_ubehloStupnu << " | Sekunda: " << ubehloSekund + 1 << endl;
  40.             }
  41.  
  42.             // this_thread::sleep_for(chrono::milliseconds(1));
  43.             delay(1);
  44.         }
  45.     }
  46. }
  47.  
  48. int main()
  49. {
  50.     posunMotor(3600, 180);
  51.  
  52.     return EXIT_SUCCESS;
  53. }
  54.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement