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



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