目录

1、有线通信

2、无线通信

3、串口点灯


机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。

​​​项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html


本篇博客来讲讲如何实现两个控制器之间数据通信(考虑到创客基础问题,本文不讲解苦涩的通信理论技术),主要包括:有线通信和无线通信两种方法,具体区别如下图所示:

1、有线通信

控制器之间有线通信主要包括:UART接口、IIC接口和SPI接口通信,两者实现通信可理解是控制器驱动传感器的原理,只需要将总线对应连接,编写驱动程序,即可实现数据的收发控制。

控制器之间UART接口连线效果如下所示:

控制器之间IIC接口连线效果如下所示:

控制器之间SPI接口连线效果如下所示:

由于通常UART串口通信方式较为简单,是使用最多的通信方式。

另外使用以上通信接口配合通信模块,也可基于RS485、RS232、RS422、CAN、以太网等通信总线直接实现两个控制器之间数据通信。

RS485设备通信

2、无线通信

无线通信主要依托于无线通信模块实现,例如局域网内常使用的蓝牙、Wi-Fi、ZIgBee等通信技术。

开发者只需要使用两块控制器驱动无线模块,即可实现无线数据收发,大多情况下无线通信模组都是基于UART串口通信进行驱动。

蓝牙通信模块如下所示:

ZigBee通信模块如下所示:

WiFi通信模块如下所示:

3、串口点灯

通过一个案例,了解控制器之间使用UART接口实现数据通信。

由于我只有一块Arduino开发板,所以使用USB转TTL调试助手模拟控制器进行有线通信,效果如下所示:

通过串口软件发送数值1开启控制器LED,发送数值0关闭控制器LED,程序设计如下所示:

需要注意,Arduino的编程中,串口输入与输出都是针对ASCII码值的,例如数值1,ASCII码值为十六进制0X31,数值0,ASCII码值为十六进制0X30。

ASCII码对应数值0~9

和12岁小同志搞创客开发:两个控制器之间如何实现通信?相关推荐

  1. 和12岁小同志搞创客开发:手撕代码,做一款遥控灯

    机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...

  2. 和12岁小同志搞创客开发:手撕代码,做一款数字骰子

    机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...

  3. 和12岁小同志搞创客开发:手撕代码,做一款密室自动门

    机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...

  4. 和12岁小同志搞创客开发:手撕代码,做一款亮度可调节灯

    目录 1.PWM呼吸灯 2.亮度可调节灯 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/ca ...

  5. 和12岁小同志搞创客开发:手撕代码,做一款声控灯

    机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...

  6. 和12岁小同志搞创客开发:手撕代码,做一款人体感应灯

    目录 1.传感器原理 2.代码实践 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/categ ...

  7. 和12岁小同志搞创客开发:如何驱动红外遥控器?

    目录 1.红外遥控器通信原理 2.NEC协议 3.实践 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_3810 ...

  8. 和12岁小同志搞创客开发:手撕代码,做一款温湿度检测器

    机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...

  9. 和12岁小同志搞创客开发:手撕代码,做一款火焰报警器

    机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...

  10. 和12岁小同志搞创客开发:手撕代码,做一款节拍电子鼓

    机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...

最新文章

  1. CString的用法
  2. C语言怎么实现单词下落,如何用c语言实现单词统计
  3. VTK 无法解析的外部符号的解决办法
  4. 一个小小指针,竟把Linux内核攻陷了!
  5. Linux rpm 命令
  6. JS鼠标滚轮事件详解
  7. 302状态码_http状态码是什么?301 302 404的SEO应用场景
  8. 计算机结构优化,计算机结构与程序优化.ppt
  9. 论文浅尝 - ICML2020 | 通过关系图上的贝叶斯元学习进行少样本关系提取
  10. 2021年周边游数据报告
  11. typescript索引类型_复杂场景下的 typescript 类型锚定 (1) ----- 对象索引提取-阿里云开发者社区...
  12. python求解按等级分配糖果问题
  13. VScode下载安装及使用教程
  14. VS2018+TensorFlow安装
  15. Hinduja Global Solutions借助OpManager一年节省300万美元
  16. Survey: A Survey on Image Tampering and Its Detection in Real-world Photos 图像仿冒
  17. (坦克警戒大战)技术服务支持
  18. Mex-hdu4747(DP)
  19. 海贼王---追了好久的动漫了闲来无事发几张图嘿嘿
  20. 打开idea的svn项目弹出Action not found:Subversion.Add提示解决办法

热门文章

  1. INSTALL_FAILED_INVALID_APK
  2. android 字体上添加横线,字体下面添加下划线
  3. Go 学习笔记(18)— 函数(04)[闭包定义、闭包修改变量、闭包记忆效应、闭包实现生成器、闭包复制原对象指针]
  4. MailKit帮助类
  5. visual studio 2013 中配置OpenCV2.4.13 姿势
  6. 十五天精通WCF——第六天 你必须要了解的3种通信模式
  7. 树形结构在关系数据库中的设计
  8. 携号转网:欢迎比阻挠更为有效
  9. ChineseCalendar类[转]
  10. java qq协议 c#,C# WebQQ协议群发机器人(三)