|
- 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命令不执行,求助是什么原因!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|