超具創(chuàng)意單片機(jī)控制LED彩虹瀑布時(shí)鐘(圖文)
摘要:這個(gè)制作基于一塊Arduino上的ATmega328芯片,稍微修改了一下PCB把輸出由負(fù)極性變?yōu)檎龢O性,還添加了一塊ULN2003用作緩沖輸出。時(shí)鐘的主體部分同其他的鐘相比沒(méi)有太大變化。我用了一些小技巧來(lái)提高光線的均勻度,同時(shí)避免眩光?;贒oug的設(shè)計(jì),還能夠自動(dòng)調(diào)節(jié)白天/夜晚的發(fā)光亮度。在最后還附有源代碼。
如何讓蒼白單調(diào)的時(shí)間變成彩色的?這個(gè)虹彩瀑布時(shí)鐘項(xiàng)目就是答案!
一段時(shí)間的全力投入之后,我終于完成了這個(gè)彩虹瀑布時(shí)鐘:-)
這個(gè)時(shí)鐘受到了 這個(gè)DIY項(xiàng)目 的啟發(fā):
在看到Doug的制作的時(shí)候,我想到了RGB LED,于是就計(jì)劃做點(diǎn)不一樣的創(chuàng)意出來(lái)。這就是思考后的成果(在被我女朋友一腳踢飛之前),我也很樂(lè)意和大家一起分享制作的過(guò)程。
這個(gè)制作基于一塊Arduino上的ATmega328芯片,稍微修改了一下PCB把輸出由負(fù)極性變?yōu)檎龢O性,還添加了一塊ULN2003用作緩沖輸出。
1 設(shè)計(jì)
我在本地的一家小公司絲網(wǎng)印刷時(shí)鐘的面板,一塊是標(biāo)準(zhǔn)的300mm x 300mm尺寸,另一塊的尺寸是自定義的185mm x 205mm。
小一點(diǎn)的面板可以用來(lái)安裝到書架上的櫥柜里,現(xiàn)在它已經(jīng)在上面快活地呆了幾個(gè)月,每天以通知我已經(jīng)遲到這種殘酷事情為樂(lè)。
這塊面板同時(shí)也用來(lái)做修改后PCB的初次測(cè)試,這個(gè)設(shè)計(jì)一直表現(xiàn)的很完美。
2 制作鐘體
時(shí)鐘的主體部分同其他的鐘相比沒(méi)有太大變化。
我用了一些小技巧來(lái)提高光線的均勻度,同時(shí)避免眩光。
和普通的設(shè)計(jì)相比,一些特殊的技巧如下:
我找了了一些塑料條并將它們裁成兩種尺寸,大一點(diǎn)的用在外框,小一點(diǎn)的用在內(nèi)部的百葉窗網(wǎng)格上。
網(wǎng)格做好了以后,在上面貼了一層高反射率的鋁箔膠帶,在黑色的塑料基底上面是銀色的反光層。
將LED燈條安放在單元的頂部和底部,這樣它們發(fā)出的光線就不會(huì)落到錯(cuò)誤的字上。
這些LED燈條來(lái)自易趣,5M牌子。但是注意,有些不好用的燈條是用三個(gè)不同的LED拼裝起來(lái)的,和三個(gè)芯片處于共同封裝里的燈條相比效果就是渣渣。
3 電氣連接
在彩虹版本上,我需要把LED的輸出極性變化一下。開始我想用一個(gè)HEF4049來(lái)反相緩沖輸出,接著我換成了ULN2003和UDN2981,它們不僅能夠完成同樣的功能,還能節(jié)省PCB板上的空間,最后用一個(gè)ULN2003來(lái)驅(qū)動(dòng)3路PWM輸出,制造隨機(jī)的顏色變化。
同最初的線路布局相比引腳的位置有些變化,但和Doug的設(shè)計(jì)本質(zhì)上沒(méi)有什么區(qū)別。
每一段LED燈條需要連出4根引線,共陽(yáng)極引線,藍(lán)色陰極,紅色陰極和綠色陰極。
我把所有的紅色LED引腳接到一個(gè)連接器上,這樣方便連接帶狀電纜。綠色和藍(lán)色的LED引腳也照此辦理。所有的線直接焊到連接器上,然后包上一層熱熔膠。
把帶狀電纜從連接器連接到12V電源上,保證所有的LED都能工作,標(biāo)記好哪一條電線對(duì)應(yīng)哪一個(gè)單元。
4 彩虹時(shí)間
所有的電線接好以后可以坐下并觀察顏色的變化。
你可以通過(guò)下面的代碼調(diào)整RGB LED的顏色。
redNew = random(255);
blueNew = random(255);
greenNew = random(255);
and
redNow = random(255);
blueNow = random(255);
greenNow = random(255);
如果你把redNew和redNow的值都降低,那么理論上紅色光的變化會(huì)減弱,而藍(lán)綠色光的變化會(huì)更加明顯。
最好還是自己做一次,然后親眼看結(jié)果。
享受它吧!照片沒(méi)有實(shí)際看起來(lái)那么好,有點(diǎn)可惜。5 源代碼
這里是彩虹鐘的 源代碼 ,基于Doug的設(shè)計(jì),還能夠自動(dòng)調(diào)節(jié)白天/夜晚的發(fā)光亮度。
想要變更燈光變幻的速度,只需要在代碼的最后改變延遲函數(shù)的值。
fade(redNow,redNew)
fade(blueNow,blueNew)
fade(greenNow,greenNew)
analogWrite(blue, blueNow);
analogWrite(red, redNow);
analogWrite(green, greenNow);
delay(150);
可以把150改成任何一個(gè)你想要的值。
這個(gè)代碼唯一的缺點(diǎn)是當(dāng)通過(guò)按鈕調(diào)整時(shí)間的時(shí)候稍有延遲,但這不是致命的問(wèn)題,因?yàn)槊磕曛恍枰{(diào)節(jié)兩次!