影响串口通讯的稳定性有哪些_【mind+】多块主控板之间进行串口通讯的方法

4a54f4df150d3f23d389d5851d0f977b.png

我们在做项目中经常会遇到这些问题:

1、要接一堆传感器,结果主控板端口不够用了。

2、要接一堆传感器,但是各种电子模块之间有冲突,例如红外接收和声音播放冲突了,dht11和软串口冲突了,等等等等。

3、要使用大电流设备容易干扰传感器的数值,例如大功率电机影响到模拟输入的稳定性。

4、两个板子比较远要进行无线通讯,例如做一个蓝牙手柄控制小车。

5、要同时监听多个状态,单线程不够用。

等等。。。

这些情况下最简单的方法就是使用多个主控板,把不同的功能分开来运行,多个板子之间进行通讯即可。

那么问题来了,如何进行两个板子间通讯呢?我们选取常用的串口通讯为例。我们要实现的目的是:

一个UNO板采集dht11传感器数据,然后每隔几秒钟发送一次给另外一个UNO板解析出来并显示到屏幕上。

分析一下:

板A采集多个数据,发送给板B,使用串口通讯的话每次只能发送一个字节,因此数据要拆分发送。

硬件上:其中硬件连接就使用硬件串口TX和RX,注意交叉连接以及两个板子的GND要连接到一起。

软件上:需要板A发送多个数据,例如温度为20,湿度为60,如果发送2060,那么板B收到后不知道哪个是温度哪个是湿度,因此我们要规定一下发送顺序,例如发送1,20,2,60,这样B板收到1就知道接下来的是温度,收到2就知道接下来的是湿度数据了。

硬件连接形式如下:

5c86195b7d09897448550ff503565173.png

左边为接收端,右边为发送端

板A程序如下:

6ce331561560ba36add471915bc6e286.png

板A定时发送数据,发送数据时采用1,数据1,2,数据2的形式方便板B收到之后可以知道多个数据分别是什么

板B程序如下:

fae70bb0b0606c9560457bc44cc9416a.png

板B接收到串口数据后根据1和2分别取出对应的值以显示出来

效果:

d36804c9f2971f516a972b01aef73879.png

更多应用:

以上两个板子怎么实现连接可以使用多种方式就有多种效果了,关键是掌握通讯的过程和方法。

使用两个蓝牙串口透传模块,一个设为主机一个为从机,就可以轻松实现无线传输或者蓝牙小车等

2c725a18434815ecb596909db9ead0f5.png

使用一个物联网模块XBEE组网模块或者microbit板子的无线广播功能,就可以把学校里面多个班级的噪音实时传输到物联网平台了

相关附件见原文下方:

【mind+】多块主控板之间进行串口通讯的方法-Mind+论坛-DF创客社区​mc.dfrobot.com.cn
5e7b8a5bb609a87bf4be0a4b6f916a3f.png

作者:李亮

未经允许 不可转载