在你提供的代码中,函数 motorRun
的参数是 cmd
,但是在 switch
语句中使用了未定义的变量 run
。应该将 run
替换为 cmd
。此外,确保在调用该函数之前已设置好电机引脚并进行了必要的初始化。
以下是修正后的代码:
#define STOP 0
#define FORWARD 1
#define BACKWARD 2
#define TURNLEFT 3
#define TURNRIGHT 4
void motorRun(int cmd)
{
switch(cmd) { // 修改这里,从 run 改为 cmd
case FORWARD:
Serial.println("FORWARD"); // 输出状态
digitalWrite(leftMotor1, HIGH);
digitalWrite(leftMotor2, LOW);
digitalWrite(rightMotor1, HIGH);
digitalWrite(rightMotor2, LOW);
break;
case BACKWARD:
Serial.println("BACKWARD"); // 输出状态
digitalWrite(leftMotor1, LOW);
digitalWrite(leftMotor2, HIGH);
digitalWrite(rightMotor1, LOW);
digitalWrite(rightMotor2, HIGH);
break;
case TURNLEFT:
Serial.println("TURN LEFT"); // 输出状态
digitalWrite(leftMotor1, HIGH);
digitalWrite(leftMotor2, LOW);
digitalWrite(rightMotor1, LOW);
digitalWrite(rightMotor2, HIGH);
break;
case TURNRIGHT:
Serial.println("TURN RIGHT"); // 输出状态
digitalWrite(leftMotor1, LOW);
digitalWrite(leftMotor2, HIGH);
digitalWrite(rightMotor1, HIGH);
digitalWrite(rightMotor2, LOW);
break;
default:
case STOP: // 将默认情况改为 STOP
Serial.println("STOP"); // 输出状态
digitalWrite(leftMotor1, LOW);
digitalWrite(leftMotor2, LOW);
digitalWrite(rightMotor1, LOW);
digitalWrite(rightMotor2, LOW);
}
}
请确保在实际使用前,你已经正确连接电机和控制引脚,并且在代码开始时调用了 pinMode()
函数来设置引脚模式。
内容由零声教学AI助手提供,问题来源于学员提问