崔景萍
(山東職業(yè)學院,山東 濟南 250104)
設(shè)計并制作一個LED線陣顯示裝置[1],該裝置由圖文錄入部分、LED線陣顯示部分和轉(zhuǎn)動控制三部分組成。利用人的視覺暫留現(xiàn)象,觀看到的轉(zhuǎn)動時LED顯示內(nèi)容效果跟平面連續(xù)顯示效果是一樣的。應(yīng)達到的要求如下:1)電機轉(zhuǎn)動后,在LED任意指定行上穩(wěn)定顯示兩條水平線;2)從LED最上和最下端一行開始,控制2條水平亮線向中間做上下往返運動;3)固定顯示獨立全亮的16×16的點陣(以2個點陣為例,圖形點陣間隔為4各點對點距離),可以在水平方向進行寬窄變化;4)可以顯示和回放由圖文錄入裝置錄入的圖文信息,錄入方式自行選擇。
圖1 LED線陣顯示裝置示意圖
2.1.1 單片機方案選擇
方案一:采用普通的51系列單片機作為系統(tǒng)控制的方案。AT89C51單片機算術(shù)運算功能強,軟件編程靈活、自由度大,可用軟件編程實現(xiàn)各種算法和邏輯控制。但是它有頻率較低、運算速度慢,RAM、ROM空間小等缺點。
方案二:采用STM32F103系列單片機作為控制系統(tǒng)的方案,STM32F103ZET6單片機采用了高性能、低成本、低功耗的ARM 32 Cortex-M內(nèi)核,高達64k字節(jié)的SRAM,1μs的雙12位ADC,4兆位/秒的UART,18兆位/秒的SPI,多達112個快速I/O端口等,功耗低,精度高。
比較上述2種方案,51單片機速度較慢,而且很多外設(shè)都要外接;而STM32主頻高,外設(shè)豐富,本設(shè)計選用方案二的STM32F103系列單片機。
2.1.2 電機方案選擇
方案一:采用步進電機帶動旋轉(zhuǎn)平臺,步進電機是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的控制元件,使得其在速度、位置等控制領(lǐng)域應(yīng)用普遍。但步進電機轉(zhuǎn)速不宜調(diào)整。
方案二:采用直流電機帶動旋轉(zhuǎn)平臺,直流電機具有調(diào)速性能好、啟動容易并可帶負載啟動等優(yōu)點,其機械特性和調(diào)速特性的線性度好,調(diào)速范圍廣、維護方便。
綜合比較,本系統(tǒng)采用方案二。
2.1.3 供電方案選擇
方案一:使用電刷連接供電,需要在電路板上加焊一層耐磨導電層,制作簡單,非常有效,但使用時間長了電刷觸點就會不夠光潔接觸壓力變大。
方案二:使用無線輸電供電,此方法無任何觸點,但存在無線電波在傳輸中的彌散和衰減問題。
方案三:使用電池供電,即在電路板上直接附帶一組干電池,為系統(tǒng)供電。使用時將電池固定在電路板上適當?shù)奈恢?,既解決了旋轉(zhuǎn)時因重力引起的重心不穩(wěn),也節(jié)省制作時間。
綜合比較,本系統(tǒng)采用方案三。
線陣LED其實就是一個循環(huán)的LED顯示,利用人的視覺滯留產(chǎn)生靜態(tài)顯示的現(xiàn)象。根據(jù)系統(tǒng)設(shè)計的任務(wù)和要求,通過方案對比,本設(shè)計系統(tǒng)整體框圖如圖2所示。本作品本著方便、價格低廉的原則,采用單片機控制。整個系統(tǒng)由圖文錄入部分、電機旋轉(zhuǎn)部分、LED線陣顯示部分組成。由12V開關(guān)電源為直流電機供電,5V電源為單片機供電,單片機接收輸入的圖文信號后按照一定的算法控制LED燈的顯示,通過電機轉(zhuǎn)動完成相應(yīng)的控制要求。
圖2 系統(tǒng)整體框圖
本系統(tǒng)電路連接及硬件資源分配見圖3所示。采用STM32F103系列STM32F103RET6兩片單片機作為核心器件,通過按鍵輸入圖文送一片單片機處理后,通過紅外通信與另一片單片機連接,經(jīng)過高精度算法后控制LED線陣顯示。
圖3 系統(tǒng)電路連接及硬件資源分配圖
本設(shè)計中通過按鍵完成圖文信息的錄入,電路沒有設(shè)計按鍵的上拉電路,而直接使用單片機內(nèi)部上拉,電路簡單。
圖4 按鍵電路
液晶電路完成圖文錄入器的顯示與回放功能。液晶電路通過5RXD腳接收信息、6TXD腳發(fā)送信息,完成與單片機的通信,如圖5(a)所示。具體內(nèi)容顯示如圖5(b)所示,此時顯示內(nèi)容為一級菜單,箭頭指向LED線陣顯示裝置,按下確認鍵顯示上一次錄入的內(nèi)容,實現(xiàn)回放功能;通過圖4(b)按鍵調(diào)節(jié)箭頭所指的位置,按一次向下鍵進圖圖文錄入器,確認后,可手動輸入要顯示的圖文,實現(xiàn)圖文錄入與顯示功能。
圖5 液晶電路圖
本研究選用成本低且又滿足精度要求的16個共陰極紅綠雙色LED燈顯示,因單片機的I/0口有限,且每個I/0驅(qū)動一個LED燈線路復雜,因此采用四片74HC595芯片作為驅(qū)動,每個芯片為8位并行輸出,可同時驅(qū)動8個LED燈,因此兩片74HC595芯片驅(qū)動綠色LED,兩片74HC595芯片驅(qū)動紅色LED。驅(qū)動電路接線圖如圖6所示,圖中只畫出了一片74HC595芯片。
圖6 LED驅(qū)動電路接線圖
線陣顯示裝置中LED驅(qū)動方法為普通的LED與電阻串聯(lián)的方式來驅(qū)動點亮LED,該限流電阻計算公式如下:
根據(jù)設(shè)計,紅綠雙色LED燈的亮度不同,綠色燈驅(qū)動參數(shù)為:Vcc=5V,VF=1.2V,IF=20mA;紅色燈驅(qū)動參數(shù)為Vcc=5V,VF=1V,IF=10mA可求得限流電阻:
經(jīng)計算,采用200Ω電阻與綠色LED串聯(lián),470Ω電阻與紅色LED等串聯(lián)即可。
LED線陣在電機帶動下進行高速旋轉(zhuǎn)。由于人的視覺滯留時間長達0.04~0.1s,以0.04s為例,顯示完一列LED后加入一段合適的(40ms以內(nèi))延時,看到的是靜態(tài)穩(wěn)定的字,LED線陣可以很好地顯示圖文。所以設(shè)定電機周期T=40ms,則電機轉(zhuǎn)速為25r/s。
1)要求固定顯示2個16×16的點陣圖形,圖形間隔為4個點陣點距離時,只需給出合適的脈沖刷新數(shù)據(jù)即可。電機旋轉(zhuǎn)一周需40ms,需要經(jīng)過(16×2+4)即36個點陣點,所以刷新送數(shù)周期t為:
脈沖圖如圖7所示:
圖7 刷新送數(shù)脈沖圖
2)當要求顯示圖形在水平方向上進行寬窄變化循環(huán)顯示時,保證40ms內(nèi)刷新32個送數(shù)脈沖前提下,只要改變刷新送數(shù)脈沖周期即可。周期變大,顯示圖形變寬;周期變小,顯示圖形變窄。
以此時間刷新送數(shù)LED線陣就能很好的地顯示圖文,(根據(jù)實際情況進行調(diào)整)。
系統(tǒng)程序設(shè)計采用自上而下、模塊化、結(jié)構(gòu)化的程序設(shè)計方法[3]。程序開始運行,首先對單片機I/O口、寄存器進行初始化操作[4];通過紅外串口接收到圖文錄入器指令,根據(jù)其指令進行顯示,并支持通過圖文錄入器傳輸圖文信息到LED線陣顯示裝置顯示。
LED線陣顯示裝置,根據(jù)檢測到LED線陣旋轉(zhuǎn)位置信號,進行刷新顯示。當檢測到位置信號時,數(shù)據(jù)計數(shù)器清零,再重新進行顯示。對本設(shè)計的軟件流程如圖8所示:
圖8 軟件主程序流程圖
本研究設(shè)計并制作完成了一個由16只紅綠雙色LED燈構(gòu)成線陣顯示裝置。實物如圖9所示。
圖9 LED 線陣顯示實物圖
經(jīng)過測試,可以確定系統(tǒng)構(gòu)架設(shè)計比較合理,可正常用LED顯示出各圖文,電路功能基本符合設(shè)計要求,測試結(jié)果如表1所示。
表1 LED線陣顯示測試結(jié)果
本課題根據(jù)LED線陣顯示裝置設(shè)計要求,利用STM32F103RET6單片機作為核心器件,通過紅外數(shù)據(jù)接收器接收錄入的圖文信息(圖文信息采用穩(wěn)定可靠的按鍵方式錄入),利用高精度算法優(yōu)化,實現(xiàn)了對LED線陣顯示的各種控制,各項指標都可以達到設(shè)計要求。