串口通信

引脚 功能
引脚O RX 接收(Receive)
引脚1 TX 发送(Transmit)

RX TX工作时,相应LED会闪烁

所有要进行串口通讯的设备,接地必须连在一起

ardunio:TTL标准(0V-5V)

每一位数据所持续的时间
通过波特率来限定
波特率:9600→每秒传输9600位

Serial. available()函数,

Serial.available 返回串口接收缓存中等待传输的数据字节数量

Serial. read 读取数据

Serial.read成功读取数据后Arduino将已经被读取的数据从缓存中清除。

1
2
3
4
5
6
7
8
9
10
void setup(){
Serial.begin(9600);//启动串口通讯,传输波特率9600
Serial.println("Please input serial data");
}
void loop(){
if( Serial.available()>0){
int serialData = Serial.read();
Serial.println(serialData);
}
}A

输入角度控制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <Servo.h>

Servo myServo; //创建Servo对象myServo

int dataIndex = 0; //创建整数型变量,存储输入数据序列号
void setup() {
myServo.attach(6);
Serial.begin(9600); //启动串口通讯,传输波特率9600
Serial.println("Please input serial data.");
}

void loop() { // 检查串口缓存是否有数据等待传输
if ( Serial.available()>0 ) {
dataIndex++; // 处理数据序列号并通过串口监视器显示
Serial.print("dataIndex = ");
Serial.print(dataIndex);
Serial.print(" , ");

int pos = Serial.parseInt(); // 解析串口数据中的整数信息并赋值给变量pos
Serial.print("Set servo position: ");
Serial.println(pos); // 通过串口监视器显示变量pos数值
myServo.write(pos); // 使用pos变量数值设置伺服电机
delay(15);
}
}

让其他引脚实现串行通信(软件模拟)

1
SoftwareSerial BTserial(23);//建立SoftwareSerial对象,RX引脚2,TX引脚3