ZBLOG

#define STOP 0 #define FORWARD 1 #define BACKWARD 2 #define TURNLEFT 3 #define TURNRIGHT 4 void motorRun(int cmd) { switch(run){ case FORWARD: Serial.println("FORWARD"); //输出状态 digitalWrite(leftMotor1, HIGH); digi...

在你提供的代码中,函数 motorRun 的参数是 cmd,但是在 switch 语句中使用了未定义的变量 run。应该将 run 替换为 cmd。此外,确保在调用该函数之前已设置好电机引脚并进行了必要的初始化。

以下是修正后的代码:

  1. #define STOP 0
  2. #define FORWARD 1
  3. #define BACKWARD 2
  4. #define TURNLEFT 3
  5. #define TURNRIGHT 4
  6. void motorRun(int cmd)
  7. {
  8. switch(cmd) { // 修改这里,从 run 改为 cmd
  9. case FORWARD:
  10. Serial.println("FORWARD"); // 输出状态
  11. digitalWrite(leftMotor1, HIGH);
  12. digitalWrite(leftMotor2, LOW);
  13. digitalWrite(rightMotor1, HIGH);
  14. digitalWrite(rightMotor2, LOW);
  15. break;
  16. case BACKWARD:
  17. Serial.println("BACKWARD"); // 输出状态
  18. digitalWrite(leftMotor1, LOW);
  19. digitalWrite(leftMotor2, HIGH);
  20. digitalWrite(rightMotor1, LOW);
  21. digitalWrite(rightMotor2, HIGH);
  22. break;
  23. case TURNLEFT:
  24. Serial.println("TURN LEFT"); // 输出状态
  25. digitalWrite(leftMotor1, HIGH);
  26. digitalWrite(leftMotor2, LOW);
  27. digitalWrite(rightMotor1, LOW);
  28. digitalWrite(rightMotor2, HIGH);
  29. break;
  30. case TURNRIGHT:
  31. Serial.println("TURN RIGHT"); // 输出状态
  32. digitalWrite(leftMotor1, LOW);
  33. digitalWrite(leftMotor2, HIGH);
  34. digitalWrite(rightMotor1, HIGH);
  35. digitalWrite(rightMotor2, LOW);
  36. break;
  37. default:
  38. case STOP: // 将默认情况改为 STOP
  39. Serial.println("STOP"); // 输出状态
  40. digitalWrite(leftMotor1, LOW);
  41. digitalWrite(leftMotor2, LOW);
  42. digitalWrite(rightMotor1, LOW);
  43. digitalWrite(rightMotor2, LOW);
  44. }
  45. }

请确保在实际使用前,你已经正确连接电机和控制引脚,并且在代码开始时调用了 pinMode() 函数来设置引脚模式。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=19457

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?