1.顯示部分
這是光影棒關(guān)鍵部分,用16個LED顯示效果比較好,點陣多,可顯示16×16的漢字,也好取模。還可以顯示自畫圖案,點陣多點也好畫圖案。
最好用雙色二極管,這樣可以顯示兩種顏色的字。如果選用貼片的二極管那只能顯示兩種顏色了。但如果選用插腳的雙色二極管就能顯示三種顏色了:紅、綠、黃。
所以,這個圖我用了插腳的雙色二極管。每個二極管的限流電阻沒有加在公共端上,原因是限流電阻阻值相同的條件下,紅、綠顯示的亮度不同的,且當(dāng)紅綠同時顯示時亮度會降低。分別串聯(lián)限流電阻就可避免這些問題了。另一個原因是可以通過調(diào)整紅綠限流電阻的大小,使紅綠的亮度接近,才能混合出黃色,否則就不是黃色,而是偏紅或偏綠了。
2.選擇單片機
在確定了顯示部分后,就可以確定單片機了??紤]引腳因素,我選擇了AT89LS51/52,可工作在低電壓下,這樣,可用2節(jié)或3節(jié)7號電池,好固定。
16個LED需要有32個I/O腳控制,但因還要有兩個控制按鈕,按包已經(jīng)是減少到最少了。這樣,將P1口留作控制口、ISP下載程序接口和擴展接口,其余P0,P2,P3有24條引腳。所以,單片機的引腳還需要擴展8個,就用一片74HC595來擴展8條引腳就全部解決了。關(guān)于速度問題不用考慮,51單片機足夠用的。在此不作說明,有疑問的朋友可另加解釋。
3.LED驅(qū)電流問題,
最好要買高亮度的二極管,因驅(qū)動電流比較小,且亮度也高。但不同型號的二極管,紅綠色驅(qū)動電流的大小是不同的。如我們原來用的雙色二極管,在達到相近亮度的條件下,紅色驅(qū)動電流較小,而綠色驅(qū)動電流較。但最近我們又買了一種雙色二極管,是真正的高亮度,不過綠色驅(qū)動電流小,紅色驅(qū)動電流大。但都比原來的驅(qū)動電流小多了,綠色為1mA,紅色為1.5mA,用單片機直接驅(qū)動是足夠用的。
4.兩個控制按鈕的作用
S2水銀開關(guān),根據(jù)搖動的方向自動變換顯示不同顏色的字,如先開始向右搖顯示紅色字,顯示4個字,再返回向右搖,顯示綠色字,顯示另4個字。每次搖動到底顯示幾個字就由編程時決定了。右左搖動一次則顯示一組字。如果買不到水銀開關(guān)就用按鈕代替了,但效果不理想了。在北京的中發(fā)應(yīng)該能買到水銀開關(guān)吧。
S1計數(shù)按鈕:有兩個作用,一是用于調(diào)節(jié)工作方式的,有兩種工作方式,一種是自動變換方式,另一種是手動選擇方式。
可事先寫入幾組顯示的文字,即右左搖動一次變換為一組文字。在自動變換方式下,每搖動一次就自動變換一組文字。這樣,從開始第一次搖動,每次搖動就會顯示不同的文字了,直到顯示最后一組文字后,再回到第一組重新開始,怎么樣,是不是很酷啊。
如果想就保持顯示一組文字的話,就調(diào)節(jié)到手動選擇方式。這手動方式下,每按一次按鈕S1,順次變換一次顯示的文字,直至最后一組再從第一組變換。
這樣,S1按鈕就用兩種選擇功能了,首先用來調(diào)節(jié)工作方式,在手動方式下還要用于選擇顯示文字組。這種一個按鈕多種功能的工作方式,要由軟件來實現(xiàn)了。
具體的編程方法我暫時保留,看看哪位大蝦能說出來,如果有說出來的,我向SOSO推薦給你加分加芯幣。
5.顯示模式
既然我們論壇中有很多高手,就要DIY出具有創(chuàng)意的有特色的光影棒來嗎,在硬件方案確定下來以后,具體的顯示內(nèi)容和模式就由軟件來發(fā)揮了。
(1)比較容易實現(xiàn)的是顯示幾個16×16的文字,這個水平一般。
(2)顯示幾組單色圖案,這個有點水平,需要畫出幾幅圖案,然后取出點陣數(shù)據(jù)。
(3)顯示幾組彩色圖案,這才是高水平呢。圖案中有紅色、綠色和黃色,雖然顏色只有三種,但也可以畫出一個比較漂亮的圖型了。