cb86915908 发表于 2021-3-7 21:03:24

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

const int dirPin = 2;// 方向引脚
const int stepPin = 3; // 步进引脚

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

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

void setup()
{
Serial.begin(9600);
Serial.println(F("++++++++++++++++++++++++++++++++++"));   
Serial.println(F("+ Taichi-Maker AccelStepper Demo +"));   
Serial.println(F("+   www.taichi-maker.com       +"));
Serial.println(F("++++++++++++++++++++++++++++++++++"));
Serial.println(F(""));
Serial.println(F("Please input motor command:"));   
}


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

    data = Serial.parseInt();
    Serial.print("data = ");
    Serial.print(data);   
    Serial.println("");   

    runUsrCmd();
}
}

//此函数用于运行用户指令
void runUsrCmd(){
switch(cmd){
    case 'x':    // 设置步进电机旋转(顺时针/逆时针)
      Serial.print("Set Rotation To ");
      if (data == 0){
      digitalWrite(dirPin, 0);
      Serial.println("Clockwise.");
      } else {
      digitalWrite(dirPin, 1);
      Serial.println("Counter Clockwise.");
      }
      break;
   
   case 'z': // 设置步进电机运行步数
      runStepper(motorSpeed, data);
      break;

    case 'd': // 设置步进电机运行速度      
      motorSpeed = data;
      Serial.print("Set Motor Speed To ");
      Serial.println(data);
      break;
         
    default:// 未知指令
      Serial.println("Unknown Command");
}
}

//运行步进电机
void runStepper (int rotationSpeed, int stepNum){
for(int x = 0; x < stepNum; x++) {
    digitalWrite(stepPin,HIGH);
    delayMicroseconds(rotationSpeed);
    digitalWrite(stepPin,LOW);
    delayMicroseconds(rotationSpeed);
}
}


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

弘毅 发表于 2021-3-8 20:19:28

示波器查看下Z轴模块脉冲是否输出正常
页: [1]
查看完整版本: 求助,新手入门的代码搞不定