2279浏览
楼主: 驴友花雕

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

[复制链接]

驴友花雕  中级技神
 楼主|

发表于 2024-7-24 22:04:42

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百二十四:Arduino CNC Shield V3 步进电机拓展模块(驱动四只电机)
  项目实验之二:使用CNC Shield 驱动二只步进电机X与Y实现往复旋转

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百二十四:Arduino CNC Shield V3 步进电机拓展模块(驱动四只电机)
  4.   项目实验之二:使用CNC Shield 驱动二只步进电机X与Y实现往复旋转
  5. */
  6. // 定义引脚
  7. const int StepX = 2;
  8. const int DirX = 5;
  9. const int StepY = 3;
  10. const int DirY = 6;
  11. const int StepZ = 4; //未接入电机
  12. const int DirZ = 7;  //未接入电机
  13. void setup() {
  14.   pinMode(StepX,OUTPUT);
  15.   pinMode(DirX,OUTPUT);
  16.   pinMode(StepY,OUTPUT);
  17.   pinMode(DirY,OUTPUT);
  18.   pinMode(StepZ,OUTPUT);
  19.   pinMode( DirZ,OUTPUT);
  20. }
  21. void loop() {
  22. digitalWrite(DirX, HIGH); //设置方向,HIGH表示顺时针,LOW表示逆时针
  23. digitalWrite(DirY, HIGH);
  24. digitalWrite(DirZ, HIGH);
  25. for(int x = 0; x<200; x++) { //循环200步
  26.   digitalWrite(StepX,HIGH);
  27.   delayMicroseconds(500);
  28.   digitalWrite(StepX,LOW);
  29.   delayMicroseconds(500);
  30. }
  31. delay(1000); //延迟1秒
  32. for(int x = 0; x<200; x++) { //循环200步
  33.   digitalWrite(StepY,HIGH);
  34.   delayMicroseconds(500);
  35.   digitalWrite(StepY,LOW);
  36.   delayMicroseconds(500);
  37. }
  38. delay(1000); //延迟1秒
  39. for(int x = 0; x<200; x++) { //循环200步
  40.   digitalWrite(StepZ,HIGH);
  41.   delayMicroseconds(500);
  42.   digitalWrite(StepZ,LOW);
  43.   delayMicroseconds(500);
  44. }
  45. delay(1); //延迟1秒
  46. }
复制代码



回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-7-24 22:11:57

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

实验模块接线示意图

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块图1

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块图2
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-7-24 22:41:31

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

实验场景图

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-7-25 05:05:05

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

实验记录视频

【花雕学编程】项目实验之二:使用CNC Shield 驱动二只步进电机X与Y实现往复旋转

https://www.bilibili.com/video/B ... a9be994cbb4a86cc987



回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-7-25 06:51:52

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百二十四:Arduino CNC Shield V3 步进电机拓展模块(驱动四只电机)
  项目实验之三:使用CNC Shield 驱动三只步进电机X、Y与Z 实现往复旋转

实验模块接线示意图

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块图1

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块图2
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-7-25 07:27:43

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

本帖最后由 驴友花雕 于 2024-7-25 07:30 编辑

项目实验之三:使用AccelStepper库驱动三只步进电机X、Y与Z 实现往复旋转

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百二十四:Arduino CNC Shield V3 步进电机拓展模块(驱动四只电机)
  4.   项目实验之三:使用AccelStepper库驱动三只步进电机X、Y与Z 实现往复旋转
  5. */
  6. //本程序使用AccelStepper库
  7. #include <AccelStepper.h>
  8. // 定义电机控制用常量
  9. const int enablePin = 8;  // 使能控制引脚
  10. const int xdirPin = 5;     // x方向控制引脚
  11. const int xstepPin = 2;    // x步进控制引脚
  12. const int ydirPin = 6;     // y方向控制引脚
  13. const int ystepPin = 3;    // y步进控制引脚
  14. const int zdirPin = 7;     // z方向控制引脚
  15. const int zstepPin = 4;    // z步进控制引脚
  16. const int moveSteps = 300;    //测试电机运行使用的运行步数
  17. AccelStepper stepper1(1, xstepPin, xdirPin); //建立步进电机对象1
  18. AccelStepper stepper2(1, ystepPin, ydirPin); //建立步进电机对象2
  19. AccelStepper stepper3(1, zstepPin, zdirPin); //建立步进电机对象3
  20. void setup() {
  21.   pinMode(xstepPin, OUTPUT);    // Arduino控制A4988x步进引脚为输出模式
  22.   pinMode(xdirPin, OUTPUT);     // Arduino控制A4988x方向引脚为输出模式
  23.   pinMode(ystepPin, OUTPUT);    // Arduino控制A4988y步进引脚为输出模式
  24.   pinMode(ydirPin, OUTPUT);     // Arduino控制A4988y方向引脚为输出模式
  25.   pinMode(zstepPin, OUTPUT);    // Arduino控制A4988z步进引脚为输出模式
  26.   pinMode(zdirPin, OUTPUT);     // Arduino控制A4988z方向引脚为输出模式
  27.   pinMode(enablePin, OUTPUT);  // Arduino控制A4988使能引脚为输出模式
  28.   digitalWrite(enablePin, LOW); // 将使能控制引脚设置为低电平从而让
  29.   // 电机驱动板进入工作状态
  30.   stepper1.setMaxSpeed(300.0);     // 设置电机最大速度300
  31.   stepper1.setAcceleration(20.0);  // 设置电机加速度20.0
  32.   stepper2.setMaxSpeed(300.0);     // 设置电机最大速度300
  33.   stepper2.setAcceleration(20.0);  // 设置电机加速度20.0
  34.   stepper3.setMaxSpeed(300.0);     // 设置电机最大速度300
  35.   stepper3.setAcceleration(20.0);  // 设置电机加速度20.0
  36. }
  37. void loop() {
  38.   // 控制步进电机1往复运动
  39.   if ( stepper1.currentPosition() == 0 ) {
  40.     stepper1.moveTo(moveSteps);
  41.   } else if ( stepper1.currentPosition() == moveSteps  ) {
  42.     stepper1.moveTo(0);
  43.   }
  44.   // 控制步进电机2往复运动
  45.   if ( stepper2.currentPosition() == 0 ) {
  46.     stepper2.moveTo(moveSteps / 2);
  47.   } else if ( stepper2.currentPosition() == moveSteps / 2  ) {
  48.     stepper2.moveTo(0);
  49.   }
  50.   // 控制步进电机3往复运动
  51.   if ( stepper3.currentPosition() == 0 ) {
  52.     stepper3.moveTo(moveSteps / 4);
  53.   } else if ( stepper3.currentPosition() == moveSteps / 4  ) {
  54.     stepper3.moveTo(0);
  55.   }
  56.   stepper1.run();   // 1号电机运行
  57.   stepper2.run();   // 2号电机运行
  58.   stepper3.run();   // 3号电机运行
  59. }
复制代码




回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-7-25 09:00:49

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

本帖最后由 驴友花雕 于 2024-7-25 11:24 编辑

【花雕动手做】实验三:使用AccelStepper库驱动三只步进电机X、Y与Z 实现往复旋转

实验记录视频
https://www.bilibili.com/video/BV154e9e9ED5/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987







回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-7-25 09:02:43

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

本帖最后由 驴友花雕 于 2024-7-25 11:25 编辑

实验场景图
【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块图2

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-7-25 12:13:20

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

本帖最后由 驴友花雕 于 2024-7-25 15:59 编辑

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百二十四:Arduino CNC Shield V3 步进电机拓展模块(驱动四只电机)
  项目实验之四:无库控制三只步进电机X、Y与Z 实现动态旋转

实验开源代码
  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百二十四:Arduino CNC Shield V3 步进电机拓展模块(驱动四只电机)
  4.    项目实验之四:无库控制三只步进电机X、Y与Z 实现动态旋转
  5. */
  6. // 定义引脚
  7. const int StepX = 2;
  8. const int DirX = 5;
  9. const int StepY = 3;
  10. const int DirY = 6;
  11. const int StepZ = 4;
  12. const int DirZ = 7;
  13. void setup() {
  14.   pinMode(StepX, OUTPUT);
  15.   pinMode(DirX, OUTPUT);
  16.   pinMode(StepY, OUTPUT);
  17.   pinMode(DirY, OUTPUT);
  18.   pinMode(StepZ, OUTPUT);
  19.   pinMode( DirZ, OUTPUT);
  20. }
  21. void loop() {
  22.   //设置方向,HIGH表示顺时针,LOW表示逆时针
  23.   digitalWrite(DirX, HIGH);
  24.   digitalWrite(DirY, HIGH);
  25.   digitalWrite(DirZ, HIGH);
  26.   //循环300步
  27.   for (int x = 0; x < 300; x++) {
  28.     digitalWrite(StepX, HIGH);
  29.     delayMicroseconds(500);
  30.     digitalWrite(StepX, LOW);
  31.     delayMicroseconds(500);
  32.   }
  33.   delay(500); //延迟0.5秒
  34.   //循环300步
  35.   for (int x = 0; x < 300; x++) {
  36.     digitalWrite(StepY, HIGH);
  37.     delayMicroseconds(500);
  38.     digitalWrite(StepY, LOW);
  39.     delayMicroseconds(500);
  40.   }
  41.   delay(500); //延迟0.5秒
  42.   //循环200步
  43.   for (int x = 0; x < 200; x++) {
  44.     digitalWrite(StepZ, HIGH);
  45.     delayMicroseconds(500);
  46.     digitalWrite(StepZ, LOW);
  47.     delayMicroseconds(500);
  48.   }
  49.   delay(500); //延迟0.5秒
  50. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-7-25 15:58:52

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

实验记录视频

【花雕动手做】实验之四:无库控制三只步进电机X、Y与Z 实现动态旋转

[url]https://www.bilibili.com/video/BV1uzehe7Eca/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987[/url]




回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-7-25 16:04:52

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

实验场景图

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-7-25 17:21:51

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

使用端口A驱动电机


【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-7-25 17:36:22

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

端口A的两种工作模式
CNC扩展板的端口A比其它三个端口的功能要更丰富一些。但是使用端口A以前,我们必须先进行一些设置工作,因此很多朋友对如何使用该端口有些不知所措。接下来我将解释如何使用和设置CNC扩展板的端口A来控制步进电机。

端口A有两种工作模式。第一种模式是复制X、Y、Z中任意一个端口上的电机运行情况(以下简称复制模式)。第二种模式是独立模式。

所谓复制模式就是端口A所接的电机完全复制其它端口上的电机运行状态。比如我们将端口A设置为复制端口X,那么端口A电机的运行状况将是完全复制端口X上的电机运行状况。注:在复制模式下,端口A电机不受Arduino开发板的程序控制而只是单纯的复制端口X电机运行。

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-7-25 17:39:06

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

除了复制模式外,端口A也可以独立模式来控制电机。这时端口A上的电机才会根据Arduino的程序控制运行。注意:在独立模式下,端口A上安装的A4988驱动板的step引脚是由Arduino的D12引脚所控制。dir引脚是由Arduino的D13引脚所控制。

设置端口A的工作模式。以上两种模式的设置是通过扩展板上专门用于设置端口A工作模式的一系列插针来完成的,如下图所示。

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块图2

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-7-25 17:43:02

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

驱动4个NEMA步进电机(42步进电机)电路连接示意图

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块图1

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块图2

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-7-25 17:44:34

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块图2

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-7-25 18:00:37

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百二十四:Arduino CNC Shield V3 步进电机拓展模块(驱动四只电机)
  项目实验之五:无库控制四只步进电机X、Y、Z与A轴实现动态旋转

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百二十四:Arduino CNC Shield V3 步进电机拓展模块(驱动四只电机)
  4.   项目实验之五:无库控制四只步进电机X、Y、Z与A轴实现动态旋转
  5. */
  6. #define EN        8
  7. //方向接脚
  8. #define X_DIR     5
  9. #define Y_DIR     6
  10. #define Z_DIR     7
  11. #define A_DIR     13
  12. //步态接脚
  13. #define X_STP     2
  14. #define Y_STP     3
  15. #define Z_STP     4
  16. #define A_STP     12
  17. // 运动周期
  18. int steps = 300;
  19. void setup() {
  20.   // 执行输出
  21.   pinMode(X_DIR, OUTPUT); pinMode(X_STP, OUTPUT);
  22.   pinMode(Y_DIR, OUTPUT); pinMode(Y_STP, OUTPUT);
  23.   pinMode(Z_DIR, OUTPUT); pinMode(Z_STP, OUTPUT);
  24.   pinMode(A_DIR, OUTPUT); pinMode(A_STP, OUTPUT);
  25.   pinMode(EN, OUTPUT);
  26.   digitalWrite(EN, LOW);
  27. }
  28. void loop() {
  29.   for (int i = 0; i < steps; i++) {
  30.     digitalWrite(Y_DIR, HIGH);
  31.     digitalWrite(Y_STP, HIGH);
  32.     delay(1);
  33.     digitalWrite(Y_STP, LOW);
  34.     delay(1);
  35.   }
  36.   for (int i = 0; i < steps; i++) {
  37.     digitalWrite(X_DIR, HIGH);
  38.     digitalWrite(X_STP, HIGH);
  39.     delay(1);
  40.     digitalWrite(X_STP, LOW);
  41.     delay(1);
  42.   }
  43.   for (int i = 0; i < steps; i++) {
  44.     digitalWrite(Z_DIR, HIGH);
  45.     digitalWrite(Z_STP, HIGH);
  46.     delay(1);
  47.     digitalWrite(Z_STP, LOW);
  48.     delay(1);
  49.   }
  50.   for (int i = 0; i < steps; i++) {
  51.     digitalWrite(A_DIR, HIGH);
  52.     digitalWrite(A_STP, HIGH);
  53.     delay(1);
  54.     digitalWrite(A_STP, LOW);
  55.     delay(1);
  56.   }
  57.   delay (1000);
  58. }
复制代码



回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-7-25 18:07:04

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

实验场景图

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-7-25 18:50:38

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

实验记录视频

【花雕动手做】实验之五:无库控制四只步进电机X、Y、Z与A轴实现动态转动#电子爱好者 #单片机开发 #科技改变生活

[url]https://www.bilibili.com/video/BV1NPehe3Emf/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987[/url]






回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-7-25 18:53:31

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

说明:电机控制引脚标识
上图中蓝色方框的引脚名称对应的是蓝色引脚插针,黄色方框中的引脚名称对应的是黄色引脚插针。这些引脚的作用是便于我们使用Arduino开发板以外的开发板来控制CNC扩展板。比如您可以使用树莓派或者ESP32等开发板通过这些备用引脚来控制CNC扩展板。

以下是这组引脚的功能。
Arduino引脚 8 ———————– CNC 扩展板 EN  ( 所有电机驱动板使能引脚/低电平有效 )
Arduino引脚 5 ———————– CNC 扩展板 X.DIR ( X端口方向控制引脚)
Arduino引脚 2 ———————– CNC 扩展板 X.STEP ( X端口步进控制引脚)
Arduino引脚 6 ———————– CNC 扩展板 Y.DIR ( Y端口方向控制引脚)
Arduino引脚 3 ———————– CNC 扩展板 Y.STEP ( Y端口步进控制引脚)
Arduino引脚 7 ———————– CNC 扩展板 Z.DIR ( Z端口方向控制引脚)
Arduino引脚 4 ———————– CNC 扩展板 Z.STEP ( Z端口步进控制引脚)
Arduino引脚 13 ——————— CNC 扩展板 A.DIR ( A端口方向控制引脚)
Arduino引脚 12 ——————— CNC 扩展板 A.STEP ( A端口步进控制引脚)
GND:接地
5V: 所有电机驱动板供电引脚(此引脚与各端口上的A4988 VDD引脚联通)

请注意,当使用非Arduino开发板来控制CNC扩展板时,请不要忘记为这里的5V引脚提供电源。这一操作的目的是为了确保各个A4988端口上的驱动板有电源供应。

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-7-26 14:57:07

【花雕学编程】Arduino动手做(224)---CNC Shield V3 拓展模块

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百二十四:Arduino CNC Shield V3 步进电机拓展模块(驱动四只电机)
  项目实验之六:用AccelStepper库控制四只步进电机X、Y、Z与A轴实现不同的转速

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百二十四:Arduino CNC Shield V3 步进电机拓展模块(驱动四只电机)
  4.   项目实验之六:用AccelStepper库控制四只步进电机X、Y、Z与A轴实现不同的转速
  5. */
  6. #include <AccelStepper.h>  //使用AccelStepper库
  7. // 定义电机控制用常量
  8. const int enablePin = 8;  // 使能控制引脚
  9. const int xdirPin = 5;     // x方向控制引脚
  10. const int xstepPin = 2;    // x步进控制引脚
  11. const int ydirPin = 6;     // y方向控制引脚
  12. const int ystepPin = 3;    // y步进控制引脚
  13. const int zdirPin = 7;     // z方向控制引脚
  14. const int zstepPin = 4;    // z步进控制引脚
  15. const int adirPin = 13;     // a方向控制引脚
  16. const int astepPin = 12;    // a步进控制引脚
  17. const int moveSteps = 1000;    //测试电机运行使用的运行步数
  18. AccelStepper stepper1(1, xstepPin, xdirPin); //建立步进电机对象1
  19. AccelStepper stepper2(1, ystepPin, ydirPin); //建立步进电机对象2
  20. AccelStepper stepper3(1, zstepPin, zdirPin); //建立步进电机对象3
  21. AccelStepper stepper4(1, astepPin, adirPin); //建立步进电机对象4
  22. void setup() {
  23.   pinMode(xstepPin, OUTPUT);    // Arduino控制A4988x步进引脚为输出模式
  24.   pinMode(xdirPin, OUTPUT);     // Arduino控制A4988x方向引脚为输出模式
  25.   pinMode(ystepPin, OUTPUT);    // Arduino控制A4988y步进引脚为输出模式
  26.   pinMode(ydirPin, OUTPUT);     // Arduino控制A4988y方向引脚为输出模式
  27.   pinMode(zstepPin, OUTPUT);    // Arduino控制A4988z步进引脚为输出模式
  28.   pinMode(zdirPin, OUTPUT);     // Arduino控制A4988z方向引脚为输出模式
  29.   pinMode(astepPin, OUTPUT);    // Arduino控制A4988a步进引脚为输出模式
  30.   pinMode(adirPin, OUTPUT);     // Arduino控制A4988a方向引脚为输出模式
  31.   pinMode(enablePin, OUTPUT);  // Arduino控制A4988使能引脚为输出模式
  32.   digitalWrite(enablePin, LOW); // 将使能控制引脚设置为低电平从而让
  33.   // 电机驱动板进入工作状态
  34.   stepper1.setMaxSpeed(300.0);     // 设置电机最大速度300
  35.   stepper1.setAcceleration(20.0);  // 设置电机加速度20.0
  36.   stepper2.setMaxSpeed(300.0);     // 设置电机最大速度300
  37.   stepper2.setAcceleration(20.0);  // 设置电机加速度20.0
  38.   stepper3.setMaxSpeed(300.0);     // 设置电机最大速度300
  39.   stepper3.setAcceleration(20.0);  // 设置电机加速度20.0
  40.   stepper4.setMaxSpeed(300.0);     // 设置电机最大速度300
  41.   stepper4.setAcceleration(20.0);  // 设置电机加速度20.0
  42. }
  43. void loop() {
  44.   // 控制步进电机1往复运动
  45.   if ( stepper1.currentPosition() == 0 ) {
  46.     stepper1.moveTo(moveSteps);
  47.   } else if ( stepper1.currentPosition() == moveSteps  ) {
  48.     stepper1.moveTo(0);
  49.   }
  50.   // 控制步进电机2往复运动
  51.   if ( stepper2.currentPosition() == 0 ) {
  52.     stepper2.moveTo(moveSteps / 2);
  53.   } else if ( stepper2.currentPosition() == moveSteps / 2  ) {
  54.     stepper2.moveTo(0);
  55.   }
  56.   // 控制步进电机3往复运动
  57.   if ( stepper3.currentPosition() == 0 ) {
  58.     stepper3.moveTo(moveSteps / 4);
  59.   } else if ( stepper3.currentPosition() == moveSteps / 4  ) {
  60.     stepper3.moveTo(0);
  61.   }
  62.   // 控制步进电机4往复运动
  63.   if ( stepper4.currentPosition() == 0 ) {
  64.     stepper4.moveTo(moveSteps / 8);
  65.   } else if ( stepper4.currentPosition() == moveSteps / 8  ) {
  66.     stepper4.moveTo(0);
  67.   }
  68.   stepper1.run();   // 1号电机运行
  69.   stepper2.run();   // 2号电机运行
  70.   stepper3.run();   // 3号电机运行
  71.   stepper4.run();   // 3号电机运行
  72. }
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail