Arduino 是一款非常受欢迎的开源电子原型平台,它基于易于使用的编程环境和各种硬件模块,使得电子项目的开发变得简单快捷。在 Arduino 的众多功能中,串口通信是一个非常重要的部分,它允许 Arduino 与计算机、其他 Arduino 板或其他设备进行数据交换。本教程将带你轻松掌握 Arduino 的串口接收与控制。
1. 串口通信基础
1.1 串口简介
串口通信是一种串行通信方式,即数据一位一位地依次传输。与并行通信相比,串口通信具有成本低、距离远等优点。在 Arduino 中,串口通信通常通过串行端口(如 UART)实现。
1.2 串口通信协议
串口通信协议主要包括以下几部分:
- 波特率:表示数据传输的速率,单位为 bit/s。
- 数据位:表示每次传输的数据位数,常见的有 7 位、8 位、9 位等。
- 停止位:表示数据传输结束后,传输线上保持一段时间的高电平。
- 校验位:用于检测数据在传输过程中是否发生错误。
2. Arduino 串口编程
2.1 初始化串口
在 Arduino 中,使用 Serial.begin() 函数初始化串口。例如,以下代码将串口波特率设置为 9600:
void setup() {
Serial.begin(9600);
}
2.2 发送数据
使用 Serial.print() 或 Serial.println() 函数可以向串口发送数据。以下代码将字符串 “Hello, world!” 发送到串口:
void loop() {
Serial.println("Hello, world!");
delay(1000);
}
2.3 接收数据
使用 Serial.available() 函数检查串口缓冲区中是否有数据可读。以下代码将读取串口缓冲区中的数据,并将其存储在变量 data 中:
void loop() {
if (Serial.available() > 0) {
char data = Serial.read();
// 处理接收到的数据
}
}
3. 串口通信实例
3.1 Arduino 与计算机通信
以下实例展示了如何使用 Arduino 将数据发送到计算机,并在计算机上接收显示:
- 在 Arduino 上编写以下代码:
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("Hello, world!");
delay(1000);
}
- 在计算机上使用串口监视器(如 PuTTY)接收数据。
3.2 Arduino 与其他 Arduino 通信
以下实例展示了如何使用两个 Arduino 板进行串口通信:
- 在第一个 Arduino 板上编写以下代码:
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0) {
char data = Serial.read();
Serial.println(data);
}
}
- 在第二个 Arduino 板上编写以下代码:
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("Hello, world!");
delay(1000);
}
- 将两个 Arduino 板的串口连接起来,并运行程序。
4. 总结
通过本教程,你已成功掌握了 Arduino 的串口接收与控制。在实际应用中,串口通信可以用于各种场景,如数据采集、远程控制等。希望你能将所学知识应用到自己的项目中,创造更多有趣的电子作品!
