如果想要给Arduino UNO R3同时接上WiFi模块和蓝牙模块时,但是Arduino的串口只有一个,怎样才能让Arduino同时使用多个串口呢?
其实Arduino官方提供了一个软串口的库SoftwareSerial,不需要额外的去库管理面板中导入,只需一句include语句就可以使用它
#include <SoftwareSerial.h>
这个库可以将Arduino的引脚,通过程序模拟成串口来使用;在声明语句中使用
SoftwareSerial mySerial(2,3);
便创建了一个自定义的软串口mySerial,并把数字引脚2定义成RX,数字引脚3定义成TX
我们现在通过实验验证软串口是否有效;让蓝牙模块的TXD和RXD接在Arduino的D2、和D3上,通过手机蓝牙串口调试助手发送数据给HC-05模块,如果软串口有效则成功控制舵机;
#include<Servo.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2,3); //定义D2、D3分别为TX、RX
Servo myservo;
int pos = 0;
void setup()
{
mySerial.begin(9600); //以9600波特率打开软串口
myservo.attach(9); //舵机控制引脚9
myservo.write(0);
delay(10000);
}
void loop()
{
while(mySerial.available())
{ char c;
c=mySerial.read();
mySerial.println (c);
switch(c){
case '2':open_the_door();
break;
}
}
}
void open_the_door(){
for (pos = 0; pos <= 180; pos += 1) {
myservo.write(pos);
delay(5);
}
}
手机蓝牙连接上HC-05模块后,发送字符串,成功控制舵机
使用软串口,有两点好处;
好处一:arduino就可以同时使用蓝牙模块和WiFi模块,再也不用为串口不够用而发愁了!
好处二:使用软串口连接,就不用担心烧录程序时的串口干扰问题了,如果经常使用串口连接蓝牙或者WiFi模块的人绝对深有体会,再也不用烧录一次程序就要拔一次杜邦线了。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有