Arduino串口通信控制直流电机代碼
时间: 2023-10-09 17:06:25 浏览: 304
下面是Arduino串口通信控制直流电机的示范代码:
```C++
int motorPin1 = 3; // 马达控制引脚1
int motorPin2 = 5; // 马达控制引脚2
int motorSpeed = 0; // 马达速度
void setup() {
// 初始化串口通信
Serial.begin(9600);
// 设置马达控制引脚为输出模式
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
}
void loop() {
// 如果串口接收到了数据
if (Serial.available() > 0) {
// 读取串口数据
motorSpeed = Serial.parseInt();
// 设置马达速度
if (motorSpeed >= 0) {
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
analogWrite(9, motorSpeed);
} else {
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
analogWrite(9, -motorSpeed);
}
}
}
```
这个代码中,我们使用了3个变量:
- `motorPin1`和`motorPin2`:分别是控制直流电机转向的引脚;
- `motorSpeed`:是控制直流电机速度的变量。
在`setup()`函数中,我们初始化了串口通信,并将控制引脚设置为输出模式。
在`loop()`函数中,我们首先判断串口是否有数据,如果有我们就读取数据并将其赋值给`motorSpeed`变量。
然后我们通过判断`motorSpeed`的值来控制电机的转向和速度。如果`motorSpeed`大于等于0,说明电机需要正转,我们就将`motorPin1`引脚设置为高电平,将`motorPin2`引脚设置为低电平,并通过`analogWrite()`函数控制电机的速度。
如果`motorSpeed`小于0,说明电机需要反转,我们就将`motorPin1`引脚设置为低电平,将`motorPin2`引脚设置为高电平,并通过`analogWrite()`函数控制电机的速度(需要将`motorSpeed`取反)。
阅读全文
相关推荐
















