求助,新手入门的代码搞不定
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命令不执行,求助是什么原因!
示波器查看下Z轴模块脉冲是否输出正常
页:
[1]