极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 35007|回复: 1

求助,新手入门的代码搞不定

[复制链接]
发表于 2021-3-7 21:03:24 | 显示全部楼层 |阅读模式
  1. const int dirPin = 2;  // 方向引脚
  2. const int stepPin = 3; // 步进引脚

  3. // 电机每圈步数
  4. const int STEPS_PER_REV = 5000;

  5. char cmd;  //用户指令字符
  6. int data;  //用户指令数据
  7. int motorSpeed = 200;  //电机转速(数值越小速度越小)

  8. void setup()
  9. {
  10.   Serial.begin(9600);
  11.   Serial.println(F("++++++++++++++++++++++++++++++++++"));     
  12.   Serial.println(F("+ Taichi-Maker AccelStepper Demo +"));   
  13.   Serial.println(F("+     www.taichi-maker.com       +"));  
  14.   Serial.println(F("++++++++++++++++++++++++++++++++++"));  
  15.   Serial.println(F(""));  
  16.   Serial.println(F("Please input motor command:"));   
  17. }


  18. void loop(){
  19.   if (Serial.available()) {     // 检查串口缓存是否有数据等待传输
  20.     cmd = Serial.read();        // 获取电机指令中电机编号信息   
  21.     Serial.print("cmd = ");
  22.     Serial.print(cmd);   
  23.     Serial.print(" , ");

  24.     data = Serial.parseInt();
  25.     Serial.print("data = ");
  26.     Serial.print(data);   
  27.     Serial.println("");   

  28.     runUsrCmd();
  29.   }
  30. }

  31. //此函数用于运行用户指令
  32. void runUsrCmd(){
  33.   switch(cmd){
  34.     case 'x':    // 设置步进电机旋转(顺时针/逆时针)
  35.       Serial.print("Set Rotation To ");
  36.       if (data == 0){
  37.         digitalWrite(dirPin, 0);
  38.         Serial.println("Clockwise.");
  39.       } else {
  40.         digitalWrite(dirPin, 1);
  41.         Serial.println("Counter Clockwise.");
  42.       }
  43.       break;
  44.    
  45.      case 'z': // 设置步进电机运行步数
  46.       runStepper(motorSpeed, data);
  47.       break;

  48.     case 'd': // 设置步进电机运行速度      
  49.       motorSpeed = data;
  50.       Serial.print("Set Motor Speed To ");
  51.       Serial.println(data);
  52.       break;
  53.          
  54.     default:  // 未知指令
  55.       Serial.println("Unknown Command");
  56.   }
  57. }

  58. //运行步进电机
  59. void runStepper (int rotationSpeed, int stepNum){
  60.   for(int x = 0; x < stepNum; x++) {
  61.     digitalWrite(stepPin,HIGH);
  62.     delayMicroseconds(rotationSpeed);
  63.     digitalWrite(stepPin,LOW);
  64.     delayMicroseconds(rotationSpeed);
  65.   }  
  66. }
复制代码



Z命令不执行,求助是什么原因!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2021-3-8 20:19:28 | 显示全部楼层
示波器查看下Z轴模块脉冲是否输出正常
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 22:55 , Processed in 0.041442 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表