孫建振 王振 姬廣超 董雨鑫 梁棟茂 鄒勱豪



摘要:多功能迷你LED燈屏幕它的設計方案主要是以 ARDUINO 為主控單元,基于GPIO的輸入輸出功能,用LED點陣實現動態顯示、秒表以及貪吃蛇小游戲。硬件電路包括控制單元ARDUINO UNO單片機 LED點陣屏幕以及74HC595位移緩存器。軟件控制部分用C/C++語言編寫,并進行了簡單的PCB設計,在單片機的控制下顯示各種各樣的內容。用戶可以通過簡單的通訊對顯示內容進行設計,方便人們的學習與使用。
關鍵詞 :ARDUINO開發板;LED燈;游戲;PCB;C語言
中圖分類號:TP3? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2020)23-0220-02
1 引言
5G將要到來,物聯網的應用越來越廣泛,許許多多的物聯網產品走進了人們的生活。基于LED的電子產品就是非常典型的例子。從交通燈到電視顯示屏等現代電子產品都與LED密切相關,所以學習、設計或了解LED產品都是非常有必要的事情。單片機是一種具有CPU的集成控制芯片,作為控制器被廣泛使用。本文將LED與ARDUINO單片機聯系在一起,基于ARDUINO單片機做了一系列有趣的LED開發。
2 迷你LED智能屏幕系統總體介紹
迷你LED智能點陣屏幕是基于ARDUINO開發板開發的。圍繞ARDUINO最小應用系統開發了數值顯示、時鐘、LED貪吃蛇等功能。功能核心是由ARDUINO主控芯片發送數據到74HC595位移緩存器,從而控制LED燈實現各種顯示功能。
2.1 電路設計
2.1.1 ARDUINO介紹
ARDUINO NANO是ARDUINO USB接口的微型版本,最大的不同是沒有電源插座以及USB接口是Mini-B型插座。ARDUINO NANO是尺寸非常小的而且可以直接插在面包板上使用。其處理器核心是ATMEGA328(NANO3.0),同時具有14路數字輸入/輸出口(其中6路可作為PWM輸出),8路模擬輸入,一個16MHz晶體振蕩器,一個MINI-B USB口,一個ICSPHEADER和一個復位按鈕。ARDUINO 編程環境可以跨平臺,而且該軟件可以在Windows Macintosh Osx Linux等操作系統上運行。ARDUINO的產品性價比高,可以自行設計,也可以購買很多完善的產品。
2.1.2 屏幕部分
74HC595位移緩存器是一個8位串行輸入、并行輸出的位移緩存器,并行輸出為三態輸出。在SCK 的上升沿,串行數據由SDL輸入到內部的8位位移緩存器,并由Q7'輸出,而并行輸出則是在LCK的上升沿將在8位位移緩存器的數據存入到8位并行輸出緩存器。當串行數據輸入端OE的控制信號為低時輸出使能,并行輸出端的輸出值等于并行輸出緩存器所存儲的值。器件圖如圖1所示。
引腳功能如下:
Q0~Q7:并行數據輸出端; GND:接地引腳; Q7S:串行數據輸出(多個芯片聯用時使用);MR: 復位引腳,當引腳接低電平時芯片內部數據存儲寄存器數據清零復位,如不使用一般接高電平;SHCP:移位寄存器的時鐘輸入,當接收到上升沿時移位寄存器內部數據整體后移;STCP:數據存儲寄存器時鐘輸入,當檢測到上升沿時使能數據存儲寄存器,將芯片接收到的數據輸出到Q0~Q7,Q7S引腳。可以將其理解為鎖存信號,當數據發送給芯片完成后對該引腳發送上升沿;OE: 輸出使能引腳,為高電平時芯片輸出引腳為高組態,當為低電平時芯片輸出引腳為高(低)電平。該引腳可用于同時控制并行輸出引腳的電平,如控制LED閃爍等。當不使用該功能時通常接低電平;DS:串行數據輸入端;VCC:電源引腳。
智能小屏幕的顯示,將由其中的單片機向3個74HC595位移緩存器(橫向2個,縱向1個)寫入數據從而控制8*16個LED,進行亮滅操作進而實現多種功能。
2.1.3 硬件電路圖設計
智能小屏幕的電路圖是用Altium Designer軟件繪制的,他的系統電路原理圖如下。
圖中數據輸入輸出口分配:將A0數據口與橫向的其中一個74HC595位移緩存器的DS口連接,并將此移位緩存器的Q7S口與另一個橫向74HC595位移緩存器DS口連接(第一個緩存器溢出的數據會被第二個器件吸收)。同樣的將數據口A3與縱向移位緩存器連接。使用74HC595位移緩存器解決了接口不夠用的問題。
硬件設計采用上下兩層方便拆卸硬件構成設計如圖3。
3 軟件部分
軟件的設計由ARDUINO LED 軟件采用C++/C語言編寫,系統的流程圖如下。
數據信息經過ARDUINO 的操控線寫入緩存器當中,通過不斷地改變顯示信息從而改變顯示狀態,實現各種各樣的效果。
軟件設計流程如下:
1) 首先編寫一個寫入顯示函數,主要能夠實現將一個狀態的顯示狀況寫到屏幕上;
2) 顯示功能的實現是先取字模,然后將字模數據寫入到顯示函數記錄數據狀態的數組里。這樣重置調用顯示函數即可根據新的數據在顯示屏上顯示相應的字母;
3) 秒表功能運用了ARDUINO單片機的定時器中斷的功能。每秒進行一個中斷,觸發中斷時中斷服務函數中對時間參數進行累加,將相應的時間參數寫入到字模數組里,再用顯示函數進行顯示就能夠實現秒表功能了;
4) LED貪吃蛇小游戲同樣是將數據顯示到寫入到顯示數組,調用顯示函數顯示, 通過外部的上下左右操作,改變LED顯示的狀態實現小蛇移動吃豆的功能,就基本實現了貪吃蛇小游戲。
4 結語
本文以ARDUINO 開發板為核心,以74HC595位移緩存器以及若干LED燈為輔助器件,設計了一款迷你的多功能LED點陣屏幕,有趣小巧。用ARDUINO單片機開發項目比使用51單片機要簡單快捷,且很容易上手學習,但是要對單片機系統有一定的理解。根據LED屏控制電路,先測試程序將所有燈點亮,然后再使用各種邏輯的控制實現各種各樣的功能,通過調試,基于ARDUINO單片機的LED屏系統達到了設計要求,并具有可操作性強、靈巧、便于學習、趣味性強等特點。
參考文獻:
[1] [英]Simon Monk .ARDUINO編程指南 75個智能硬件程序設計技巧[M].北京:人民郵電出版社,2016.
[2] 《無線電》編輯部.超炫的35個ARDUINO制作項目[M].北京:人民郵電出版社,2014.
[3]? 杰里米·布魯姆 .ARDUINO魔法書:實現夢想的工具和技術[M].北京:電子工業出版社,2014.
[4] (美)Steven F. Barrett .ARDUINO高級開發權威指南(原書第2版)[M].北京: 機械工業出版社,2014.
[5] 陳永強,魏金成,吳昌東.模擬電子技術[M].北京:人民郵電出版社,2013.
[6] 李興華.物理實驗手冊[M].北京:中國計量出版社,2012.
[7] [美]Michael Margolis .ARDUINO權威指南(第2版)[M].北京:人民郵電出版社,2015.
【通聯編輯:代影】