当前位置:   article > 正文

ESP8266驱动五线四相步进电机_esp8266控制步进电机

esp8266控制步进电机

一.系统概述

使用ESP8266作为主控,驱动是ULN2003A,驱动五线四相步进电机。

(1)五相步进电机工程图

(2)驱动电路原理图

 

 

二.代码部分

  1. #define D1 5
  2. #define D2 4
  3. #define D3 0
  4. #define D4 2
  5. #define DSD 5
  6. void setup() {
  7. // put your setup code here, to run once:
  8. pinMode(5,OUTPUT);
  9. pinMode(4,OUTPUT);
  10. pinMode(0,OUTPUT);
  11. pinMode(2,OUTPUT);
  12. pinMode(14,INPUT_PULLUP);
  13. pinMode(12,INPUT_PULLUP);
  14. }
  15. void loop() {
  16. // put your main code here, to run repeatedly:
  17. if(digitalRead(14)!=1)
  18. {
  19. clockward90();
  20. }
  21. if(digitalRead(12)!=1)
  22. {
  23. cclockward90();
  24. }
  25. }
  26. void clockward90(){
  27. for(int i=1;i<=128;i++)
  28. {
  29. delay(DSD);
  30. phaseA();
  31. delay(DSD);
  32. phaseAB();
  33. delay(DSD);
  34. phaseB();
  35. delay(DSD);
  36. phaseBC();
  37. delay(DSD);
  38. phaseC();
  39. delay(DSD);
  40. phaseCD();
  41. delay(DSD);
  42. phaseD();
  43. delay(DSD);
  44. phaseDA();
  45. }
  46. phaseZero();
  47. }
  48. void cclockward90(){
  49. for(int i=1;i<=128;i++)
  50. {
  51. delay(DSD);
  52. phaseDA();
  53. delay(DSD);
  54. phaseD();
  55. delay(DSD);
  56. phaseCD();
  57. delay(DSD);
  58. phaseC();
  59. delay(DSD);
  60. phaseBC();
  61. delay(DSD);
  62. phaseB();
  63. delay(DSD);
  64. phaseAB();
  65. delay(DSD);
  66. phaseA();
  67. }
  68. phaseZero();
  69. }
  70. void phaseA(){
  71. digitalWrite(5,HIGH);
  72. digitalWrite(4,LOW);
  73. digitalWrite(0,LOW);
  74. digitalWrite(2,LOW);
  75. }
  76. void phaseB(){
  77. digitalWrite(5,LOW);
  78. digitalWrite(4,HIGH);
  79. digitalWrite(0,LOW);
  80. digitalWrite(2,LOW);
  81. }
  82. void phaseC(){
  83. digitalWrite(5,LOW);
  84. digitalWrite(4,LOW);
  85. digitalWrite(0,HIGH);
  86. digitalWrite(2,LOW);
  87. }
  88. void phaseD(){
  89. digitalWrite(5,LOW);
  90. digitalWrite(4,LOW);
  91. digitalWrite(0,LOW);
  92. digitalWrite(2,HIGH);
  93. }
  94. void phaseAB(){
  95. digitalWrite(5,HIGH);
  96. digitalWrite(4,HIGH);
  97. digitalWrite(0,LOW);
  98. digitalWrite(2,LOW);
  99. }
  100. void phaseBC(){
  101. digitalWrite(5,LOW);
  102. digitalWrite(4,HIGH);
  103. digitalWrite(0,HIGH);
  104. digitalWrite(2,LOW);
  105. }
  106. void phaseCD(){
  107. digitalWrite(5,LOW);
  108. digitalWrite(4,LOW);
  109. digitalWrite(0,HIGH);
  110. digitalWrite(2,HIGH);
  111. }
  112. void phaseDA(){
  113. digitalWrite(5,HIGH);
  114. digitalWrite(4,LOW);
  115. digitalWrite(0,LOW);
  116. digitalWrite(2,HIGH);
  117. }
  118. void phaseZero(){
  119. digitalWrite(5,LOW);
  120. digitalWrite(4,LOW);
  121. digitalWrite(0,LOW);
  122. digitalWrite(2,LOW);
  123. }

三.工作情况

实验情况:工作稳定,满足需要。电机很便宜,工作也很稳定。就是转的有点慢。

       每次按下按钮,步进电机顺时针/逆时针旋转90°,接下来步进电机的所有输入INT引脚打高,步进电机内部线圈此时不通过电流,来减小步进电机在待机状态下的发热。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/67703
推荐阅读
相关标签
  

闽ICP备14008679号