和12岁小同志搞创客开发:两个控制器之间如何实现通信?
目錄
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、以太網等通信總線直接實現兩個控制器之間數據通信。
2、無線通信
無線通信主要依托于無線通信模塊實現,例如局域網內常使用的藍牙、Wi-Fi、ZIgBee等通信技術。
開發者只需要使用兩塊控制器驅動無線模塊,即可實現無線數據收發,大多情況下無線通信模組都是基于UART串口通信進行驅動。
藍牙通信模塊如下所示:
ZigBee通信模塊如下所示:
WiFi通信模塊如下所示:
3、串口點燈
通過一個案例,了解控制器之間使用UART接口實現數據通信。
由于我只有一塊Arduino開發板,所以使用USB轉TTL調試助手模擬控制器進行有線通信,效果如下所示:
?通過串口軟件發送數值1開啟控制器LED,發送數值0關閉控制器LED,程序設計如下所示:
需要注意,Arduino的編程中,串口輸入與輸出都是針對ASCII碼值的,例如數值1,ASCII碼值為十六進制0X31,數值0,ASCII碼值為十六進制0X30。
總結
以上是生活随笔為你收集整理的和12岁小同志搞创客开发:两个控制器之间如何实现通信?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LabVIEW图像分割算法(基础篇—6)
- 下一篇: 和12岁小同志搞创客开发:设计一款亮度可