|
看到市場上正在流行的時尚商品——搖擺LED 時鐘,感覺非常新穎獨特,正在玩單片機的我,激起了自己也想DIY 一個的沖動。不就是一個流水燈嗎?有什么難的?! 于是,一個單片機項目就這樣開始了。然而動手以后才知道問題并非想象那樣簡單,因沒有任何現成的資料,機械的、電子的和編程的問題一大堆,一個一個需要自己來解決。經歷二十多天的苦戰和無數次的修改與調試,作品終于完成,基本達到預先要求。
現將制作資料整理出來,與廣大DIY 愛好者分享。
一. 整體方案
本制作是根據視覺暫留原理, 讓一排8 只LED作往復運動, 在空中呈現八個字符的顯示屏,可顯示數字或英文字符。開機后先顯示“Welcome!”歡迎字符(見圖1), 再進入時鐘顯示狀態。顯示屏同時顯示“時” 、“分” 、“秒”信息,用“:”分隔(見圖2)。
104547nr0injrlgg4rntje.jpg (8.77 KB, 下載次數: 131)
下載附件
2016-10-11 21:25 上傳
10455691bbvtdb6xs5bjs9.jpg (7.71 KB, 下載次數: 136)
下載附件
2016-10-11 21:25 上傳
圖1 開機畫面 圖2 運行狀態
顯示分“正常運行”、“調分”和“調時” 三種狀態。當處于調整狀態時,調整的項會閃現,以便識別。為此,設置三個調整按鍵,一個為“狀態鍵”,一個為“加法鍵”,一個為“減法鍵”。(見圖3)
104556wqosoowccwshoziq.jpg (16.13 KB, 下載次數: 117)
下載附件
2016-10-11 21:25 上傳
104556zfxcjuuqncw4vnvj.jpg (20.01 KB, 下載次數: 131)
下載附件
2016-10-11 21:25 上傳
圖3 按鍵的設置 圖4 音圈電機組件
搖棒的動力部分采用從廢舊硬盤拆下的音圈電機(見圖4),驅動采用直流電機驅動方式。
結構方面,將音圈電機直接安裝在萬用板上,將萬用板的四周用四根螺柱與一透明有機板結合成一體,構成支撐搖棒底座。(見圖5, 圖6)。
104556dmay7rb7jk54uumj.jpg (14.33 KB, 下載次數: 125)
下載附件
2016-10-11 21:25 上傳
104556j7j7h8at2772m228.jpg (9.3 KB, 下載次數: 123)
下載附件
2016-10-11 21:25 上傳
圖5 萬用板與有機板構成底座 圖6 底座側面
二. 實作要點
1. 主板的結構布局見圖7。
104556agljuazw979kakbk.jpg (21.74 KB, 下載次數: 132)
下載附件
2016-10-11 21:25 上傳
104556f5wn0nntdrxt00hk.jpg (9.32 KB, 下載次數: 120)
下載附件
2016-10-11 21:25 上傳
圖7 主板布局 圖8 搖棒上的LED
2.LED 的焊接,將LED 兩腳跨接在電路板兩端的方式進行焊接。使LED 緊密排列在一起。
3.搖棒上的LED 與主板上的信號用柔性排線連接,音圈電機供電占2 位,LED 信號傳輸占9 位,所以至少要11 位的排線。(見圖9)
1045567qpex0vkd6jg01pr.jpg (17.3 KB, 下載次數: 149)
下載附件
2016-10-11 21:25 上傳
104559oj1zjjcj7d71yj8n.jpg (16.66 KB, 下載次數: 132)
下載附件
2016-10-11 21:25 上傳
圖9 排線與拉簧 圖10 拉簧
4.為保持搖棒的平衡, 在搖棒接近旋轉軸的兩端加裝兩只拉簧,這兩只拉簧的規格盡量保持一致,彈性強弱要適中,最好可多找幾種規格的試試。(圖9,圖10)
5.采用驅動直流電機正反轉的方式,驅動音圈電機來回擺動。讓電機正、反轉的方法很多,最典型的是H 橋電路驅動,H 橋電路原理見圖11,常見的是用三級管代替圖中的開關。
104600qm2wm3cq6dw72n93.jpg (14.82 KB, 下載次數: 129)
下載附件
2016-10-11 21:25 上傳
圖11 H 橋驅動原理
為了簡化電路,最好采用H 橋功能的集成電路。這種IC 很多,比如象TA7257,TA8429H,L6203 等,這里用的是三菱公司的M54544AL(見圖12)。IC 各腳定義見圖13。
104600mjqe0j0zmzmb8j5k.jpg (16.97 KB, 下載次數: 120)
下載附件
2016-10-11 21:25 上傳
圖12 電機驅動IC
104600xs87p68gpcz1181f.jpg (15.96 KB, 下載次數: 115)
下載附件
2016-10-11 21:25 上傳
圖13 M56544AL 各腳定義
6.電原理圖見圖14。
104600h0hxu4c3ssd435hb.jpg.thumb.jpg (40.27 KB, 下載次數: 122)
下載附件
2016-10-11 21:25 上傳
圖14 電原理圖
7.完成圖見圖15。
104600sgwp2zec2eh6we0e.jpg.thumb.jpg (18.18 KB, 下載次數: 130)
下載附件
2016-10-11 21:25 上傳
圖15 完成圖
三. 軟件設計
1. 搖棒的啟動
為了使搖棒從靜止狀態過度到正常運行狀態,在正式顯示前加一啟動程序。其實質就是逐漸加快驅動的頻率,一直到搖棒正常擺動為止。通過下面的代碼實現
do {
mm++;
Delay(120+mm);
put1=~put1; put2=~put2;
}while(mm<60);
Delay(20); //根據實際情況確定延時值
2. 秒閃現的實現:數字或字符的閃現是通過變量Ms 和數組w[]實現的,如需要八位字符中的間的第4 位閃現,則w[3]=1。這是通過全局變量Ms 在void timer0(void)函數中每隔一秒改變一次狀態(0 或1),打開或關閉顯示。
if(Ms*w[ii-3]==1) P2=0xff; else P2=~ASCIIDOC[v[ii]*6+jj]; //正向顯示
if(Ms*w[10-ii]==1) P2=0xff; else P2=~ASCIIDOC[v[13-ii]*6+5-jj]; //反向顯示
3. 調試中發現,顯示屏上的字符并不是一樣寬的(見圖16),仔細分析是由于搖棒在運動中,一直受力,而且所受的力是隨時變化的。為方便精確調整顯示,特別作了一個顯示中斷表Tr[],改變顯示LED 的時間段,協調顯示效果。
1046048toikiv2z56ri1ir.jpg (9.9 KB, 下載次數: 121)
下載附件
2016-10-11 21:25 上傳
圖16 調整前的顯示
4. 按鍵去抖程序
按鍵的去抖采用軟件編程實現,其方法是當檢測到按鍵的接口出現低電平后,隔一段時間再檢測,如還是低電平,則確認為有效,否則無效。具體的程序是通過函數unsigned char ChKey(bit Key)完成的。
5. 顯示同步
因沒有位置傳感器,顯示同步完全靠時鐘中斷來確定。這樣就有一個問題,音圈電機的驅動信號在什么時刻改變,顯示才能保持在中間,并能保證正反顯示能很好地重合。經實際觀察, 音圈電機的驅動信號在顯示中部, 要根據具體情況細調。由程序中的變量Ta 調試確定。
6. 完整C51 程序代碼
請見附件
四.調試方法
雖說是個機電一體的制作,但調試過程并不復雜。
1. 機械部分的調整主要是兩只拉簧, 要盡量保證兩邊受力一致,讓搖棒靜態時保持在豎直狀態。
2. 軟件部分,先將void timer1(void)函數中的“Ti=-Tr[ii*6+jj];”這段程序刪除,試著讓Ti 取一常數值(大約-2000 左右)看顯示效果(搖棒擺動的幅度),一直到滿意為止,這時正反顯示可能沒有重合,接著試Ta 的取值,范圍在42 到50 之間,使正反顯示重合為止。最后一步就是調整顯示的不均勻性,將“Ti=-Tr[ii*6+jj];”這段程序恢復回來,試著改變Tr[]表中數組元素的值,并保證表中的元素的平均值為開始Ti 取得的值,讓顯示的每個字符寬度一致為止。
五.結語
本制作電路簡單,其原理實質就是LED 流水燈,而關鍵的音圈電機也很容易找到,很適合剛入門的單片機愛好者制作。制作還有發揮的地方,
1. 添加時鐘IC,使顯時更精準,而且不怕掉電;
2. 加裝位置傳感器,增加顯示的穩定性;
3. 增添搖控功能,使調整更方便。
程序:
純手工打造搖擺LED時鐘.rar
(2.37 KB, 下載次數: 43)
2016-10-11 21:25 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
|