arduino串口控制舵机 LED灯 RGB迷彩灯
时间: 2023-07-31 16:12:46 浏览: 129
基于arduino的串口控制舵机源程序
5星 · 资源好评率100%
要在Arduino上通过串口控制舵机、LED灯或RGB迷彩灯,需要使用相应的模块或元件,并编写相应的代码。
以下是一个控制舵机的示例代码,假设舵机信号线接到Arduino的数字引脚9:
```
#include <Servo.h>
Servo myservo; // 创建一个舵机对象
void setup() {
myservo.attach(9); // 将舵机信号线连接到数字引脚9
Serial.begin(9600); // 初始化串口通信,波特率为9600
}
void loop() {
if (Serial.available() > 0) { // 如果串口有数据可读
int angle = Serial.parseInt(); // 读取角度值
myservo.write(angle); // 控制舵机转到指定角度
}
}
```
在上面的代码中,使用了Servo库来控制舵机,通过Serial.parseInt()函数读取串口传来的角度值,并用myservo.write()函数控制舵机转到指定角度。
以下是一个控制LED灯的示例代码,假设LED灯接到Arduino的数字引脚13:
```
void setup() {
pinMode(13, OUTPUT); // 将数字引脚13设置为输出模式
Serial.begin(9600); // 初始化串口通信,波特率为9600
}
void loop() {
if (Serial.available() > 0) { // 如果串口有数据可读
int state = Serial.parseInt(); // 读取状态值
digitalWrite(13, state); // 控制LED灯亮或灭
}
}
```
在上面的代码中,使用digitalWrite()函数控制数字引脚13输出高电平或低电平,从而控制LED灯的亮灭。
以下是一个控制RGB迷彩灯的示例代码,假设红、绿、蓝三色LED灯分别接到Arduino的数字引脚11、10、9:
```
void setup() {
pinMode(11, OUTPUT); // 将数字引脚11设置为输出模式(红色LED)
pinMode(10, OUTPUT); // 将数字引脚10设置为输出模式(绿色LED)
pinMode(9, OUTPUT); // 将数字引脚9设置为输出模式(蓝色LED)
Serial.begin(9600); // 初始化串口通信,波特率为9600
}
void loop() {
if (Serial.available() > 0) { // 如果串口有数据可读
String color = Serial.readString(); // 读取颜色值
if (color == "red") { // 如果颜色为红色
digitalWrite(11, HIGH); // 红色LED亮
digitalWrite(10, LOW); // 绿色LED灭
digitalWrite(9, LOW); // 蓝色LED灭
} else if (color == "green") { // 如果颜色为绿色
digitalWrite(11, LOW); // 红色LED灭
digitalWrite(10, HIGH); // 绿色LED亮
digitalWrite(9, LOW); // 蓝色LED灭
} else if (color == "blue") { // 如果颜色为蓝色
digitalWrite(11, LOW); // 红色LED灭
digitalWrite(10, LOW); // 绿色LED灭
digitalWrite(9, HIGH); // 蓝色LED亮
}
}
}
```
在上面的代码中,使用digitalWrite()函数控制红、绿、蓝三色LED灯的亮灭,从而实现RGB迷彩灯的效果。同时,使用Serial.readString()函数读取串口传来的颜色值,并通过if语句判断控制哪个LED灯亮。
阅读全文