Advertisement
evgenko

Untitled

Nov 21st, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.92 KB | None | 0 0
  1. // подключите пины контроллера к цифровым пинам Arduino
  2.  
  3. // первый двигатель
  4.  
  5. int enA = 10;
  6.  
  7. int in1 = 9;
  8.  
  9. int in2 = 8;
  10.  
  11. // второй двигатель
  12.  
  13. int enB = 5;
  14.  
  15. int in3 = 7;
  16.  
  17. int in4 = 6;
  18.  
  19. void setup()
  20.  
  21. {
  22.  
  23. // инициализируем все пины для управления двигателями как outputs
  24.  
  25. pinMode(enA, OUTPUT);
  26.  
  27. pinMode(enB, OUTPUT);
  28.  
  29. pinMode(in1, OUTPUT);
  30.  
  31. pinMode(in2, OUTPUT);
  32.  
  33. pinMode(in3, OUTPUT);
  34.  
  35. pinMode(in4, OUTPUT);
  36.  
  37. }
  38.  
  39. void demoOne()
  40.  
  41. {
  42.  
  43. // эта функция обеспечит вращение двигателей в двух направлениях на установленной скорости
  44.  
  45. // запуск двигателя A
  46.  
  47. digitalWrite(in1, HIGH);
  48. //
  49. digitalWrite(in2, LOW);
  50. //
  51. //// устанавливаем скорость 200 из доступного диапазона 0~255
  52. //
  53. analogWrite(enA, 200);
  54.  
  55. // запуск двигателя B
  56.  
  57. digitalWrite(in3, LOW);
  58.  
  59. digitalWrite(in4, HIGH);
  60. //
  61. //// устанавливаем скорость 200 из доступного диапазона 0~255
  62. //
  63. analogWrite(enB, 200);
  64.  
  65. //delay(5000);
  66.  
  67. // меняем направление вращения двигателей
  68.  
  69. //digitalWrite(in1, LOW);
  70. //
  71. //digitalWrite(in2, HIGH);
  72. //
  73. //digitalWrite(in3, LOW);
  74.  
  75. //digitalWrite(in4, HIGH);
  76. //
  77. //delay(5000);
  78.  
  79. // выключаем двигатели
  80.  
  81. //digitalWrite(in1, LOW);
  82. //
  83. //digitalWrite(in2, LOW);
  84. //
  85. //digitalWrite(in3, LOW);
  86. //
  87. //digitalWrite(in4, LOW);
  88.  
  89. }
  90.  
  91. void demoTwo()
  92.  
  93. {
  94.  
  95. // эта функция обеспечивает работу двигателей во всем диапазоне возможных скоростей
  96.  
  97. // обратите внимание, что максимальная скорость определяется самим двигателем и напряжением питания
  98.  
  99. // ШИМ-значения генерируются функцией analogWrite()
  100.  
  101. // и зависят от вашей платы управления
  102.  
  103. // запускают двигатели
  104.  
  105. //digitalWrite(in1, LOW);
  106. //
  107. //digitalWrite(in2, HIGH);
  108.  
  109. digitalWrite(in3, LOW);
  110.  
  111. digitalWrite(in4, HIGH);
  112.  
  113. // ускорение от нуля до максимального значения
  114.  
  115. for (int i = 0; i < 256; i++)
  116.  
  117. {
  118.  
  119. //analogWrite(enA, i);
  120.  
  121. analogWrite(enB, i);
  122.  
  123. delay(20);
  124.  
  125. }
  126.  
  127. // торможение от максимального значения к минимальному
  128.  
  129. for (int i = 255; i >= 0; --i)
  130.  
  131. {
  132.  
  133. //analogWrite(enA, i);
  134.  
  135. analogWrite(enB, i);
  136.  
  137. delay(20);
  138.  
  139. }
  140.  
  141. // теперь отключаем моторы
  142. //
  143. //digitalWrite(in1, LOW);
  144. //
  145. //digitalWrite(in2, LOW);
  146.  
  147. digitalWrite(in3, LOW);
  148.  
  149. digitalWrite(in4, LOW);
  150.  
  151. }
  152.  
  153. void loop()
  154.  
  155. {
  156.  
  157. demoOne();
  158. //
  159. //delay(1000);
  160. //
  161. //demoTwo();
  162. //
  163. //delay(1000);
  164.  
  165. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement