Advertisement
gabbyshimoni

byj28 run by l298n

Feb 17th, 2019
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.54 KB | None | 0 0
  1. /*
  2.    Driving a 5V stepper motor using Keyes L298N Dual Motor Driver;
  3.   Gabby Shimoni 17-Feb-2019
  4. */
  5. const int ENA = 7;
  6. const int IN1 = 6;
  7. const int IN2 = 5;
  8. const int ENB = 8;
  9. const int IN4 = 9;
  10. const int IN3 = 10;
  11. const int ledPin = 13;
  12. void setup()
  13. {
  14.   pinMode(ENA, OUTPUT);
  15.   pinMode(IN1, OUTPUT);
  16.   pinMode(IN2, OUTPUT);
  17.   pinMode(ENB, OUTPUT);
  18.   pinMode(IN3, OUTPUT);
  19.   pinMode(IN4, OUTPUT);
  20.   pinMode(ledPin, OUTPUT);
  21.   digitalWrite(ledPin, LOW);
  22.   //delay is used to control the speed, the lower the faster.
  23.   //reverse(step,delay);
  24.   reverse(4096, 1);
  25.   //forward(step,delay);
  26.   forward(4096, 1);
  27. }
  28. void loop()
  29. {
  30. }
  31. void reverse(int i, int j) {
  32.   // set both motors ON
  33.   digitalWrite(ENA, HIGH);
  34.   digitalWrite(ENB, HIGH);
  35.   while (1)   {
  36.     digitalWrite(IN1, 0);
  37.     digitalWrite(IN2, 0);
  38.     digitalWrite(IN3, 0);
  39.     digitalWrite(IN4, 1);
  40.     delay(j);
  41.     i--;
  42.     if (i < 1) break;
  43.     digitalWrite(IN1, 0);
  44.     digitalWrite(IN2, 0);
  45.     digitalWrite(IN3, 1);
  46.     digitalWrite(IN4, 1);
  47.     delay(j);
  48.     i--;
  49.     if (i < 1) break;
  50.     digitalWrite(IN1, 0);
  51.     digitalWrite(IN2, 0);
  52.     digitalWrite(IN3, 1);
  53.     digitalWrite(IN4, 0);
  54.     delay(j);
  55.     i--;
  56.     if (i < 1) break;
  57.     digitalWrite(IN1, 0);
  58.     digitalWrite(IN2, 1);
  59.     digitalWrite(IN3, 1);
  60.     digitalWrite(IN4, 0);
  61.     delay(j);
  62.     i--;
  63.     if (i < 1) break;
  64.     digitalWrite(IN1, 0);
  65.     digitalWrite(IN2, 1);
  66.     digitalWrite(IN3, 0);
  67.     digitalWrite(IN4, 0);
  68.     delay(j);
  69.     i--;
  70.     if (i < 1) break;
  71.     digitalWrite(IN1, 1);
  72.     digitalWrite(IN2, 1);
  73.     digitalWrite(IN3, 0);
  74.     digitalWrite(IN4, 0);
  75.     delay(j);
  76.     i--;
  77.     if (i < 1) break;
  78.     digitalWrite(IN1, 1);
  79.     digitalWrite(IN2, 0);
  80.     digitalWrite(IN3, 0);
  81.     digitalWrite(IN4, 0);
  82.     delay(j);
  83.     i--;
  84.     if (i < 1) break;
  85.     digitalWrite(IN1, 1);
  86.     digitalWrite(IN2, 0);
  87.     digitalWrite(IN3, 0);
  88.     digitalWrite(IN4, 1);
  89.     delay(j);
  90.     i--;
  91.     if (i < 1) break;
  92.   }
  93.   // set both motors OFF
  94.   digitalWrite(ENA, LOW);
  95.   digitalWrite(ENB, LOW);
  96. }  // end reverse()
  97.  
  98.  
  99.  
  100. void forward(int i, int j) {
  101.   // Set both motors ON
  102.   digitalWrite(ENA, HIGH);
  103.   digitalWrite(ENB, HIGH);
  104.   while (1)   {
  105.     if (i < 1) break;
  106.     digitalWrite(IN1, 1);
  107.     digitalWrite(IN2, 0);
  108.     digitalWrite(IN3, 0);
  109.     digitalWrite(IN4, 1);
  110.     delay(j);
  111.     i--;
  112.     if (i < 1) break;
  113.     digitalWrite(IN1, 1);
  114.     digitalWrite(IN2, 0);
  115.     digitalWrite(IN3, 0);
  116.     digitalWrite(IN4, 0);
  117.     delay(j);
  118.     i--;
  119.     if (i < 1) break;
  120.     digitalWrite(IN1, 1);
  121.     digitalWrite(IN2, 1);
  122.     digitalWrite(IN3, 0);
  123.     digitalWrite(IN4, 0);
  124.     delay(j);
  125.     i--;
  126.     if (i < 1) break;
  127.     digitalWrite(IN1, 0);
  128.     digitalWrite(IN2, 1);
  129.     digitalWrite(IN3, 0);
  130.     digitalWrite(IN4, 0);
  131.     delay(j);
  132.     i--;
  133.     if (i < 1) break;
  134.     digitalWrite(IN1, 0);
  135.     digitalWrite(IN2, 1);
  136.     digitalWrite(IN3, 1);
  137.     digitalWrite(IN4, 0);
  138.     delay(j);
  139.     i--;
  140.     if (i < 1) break;
  141.     digitalWrite(IN1, 0);
  142.     digitalWrite(IN2, 0);
  143.     digitalWrite(IN3, 1);
  144.     digitalWrite(IN4, 0);
  145.     delay(j);
  146.     i--;
  147.     if (i < 1) break;
  148.     digitalWrite(IN1, 0);
  149.     digitalWrite(IN2, 0);
  150.     digitalWrite(IN3, 1);
  151.     digitalWrite(IN4, 1);
  152.     delay(j);
  153.     i--;
  154.     digitalWrite(IN1, 0);
  155.     digitalWrite(IN2, 0);
  156.     digitalWrite(IN3, 0);
  157.     digitalWrite(IN4, 1);
  158.     delay(j);
  159.     i--;
  160.  
  161.     if (i < 1) break;
  162.    
  163.   }
  164.   // set both motors OFF
  165.   digitalWrite(ENA, LOW);
  166.   digitalWrite(ENB, LOW);
  167. }  // end forward()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement