前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Arduino如何同时使用多个串口

Arduino如何同时使用多个串口

作者头像
小雨coding
发布2020-06-09 14:16:20
4.4K0
发布2020-06-09 14:16:20
举报
文章被收录于专栏:小雨编程

问题

如果想要给Arduino UNO R3同时接上WiFi模块和蓝牙模块时,但是Arduino的串口只有一个,怎样才能让Arduino同时使用多个串口呢?

解决方案

其实Arduino官方提供了一个软串口的库SoftwareSerial,不需要额外的去库管理面板中导入,只需一句include语句就可以使用它

代码语言:javascript
复制
#include <SoftwareSerial.h>

这个库可以将Arduino的引脚,通过程序模拟成串口来使用;在声明语句中使用

代码语言:javascript
复制
SoftwareSerial mySerial(2,3);

便创建了一个自定义的软串口mySerial,并把数字引脚2定义成RX,数字引脚3定义成TX

实验验证

我们现在通过实验验证软串口是否有效;让蓝牙模块的TXD和RXD接在Arduino的D2、和D3上,通过手机蓝牙串口调试助手发送数据给HC-05模块,如果软串口有效则成功控制舵机;

代码
代码语言:javascript
复制
#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模块的人绝对深有体会,再也不用烧录一次程序就要拔一次杜邦线了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小雨编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题
  • 解决方案
  • 实验验证
    • 代码
    • 测试结果
    • 最后
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档