第1步:工具和材料
雖然有很長(zhǎng)的材料清單,但我在ebay上收集了所有組件成本。便宜組件的缺點(diǎn)是運(yùn)輸速度很慢,但我有時(shí)間等待。
工具
鉆
烙鐵
熱膠槍
鑿子
鉗子
材料
20 x WS2812B 5050 RGB LED
1 x 0.1uF電容器
3 x 1 kohm電阻器
1 x 470 ohm電阻器
1 x 820歐姆電阻器
1 x 10 kohm電阻器
3 x NPN開(kāi)關(guān)晶體管
1 x紅色LED
1 x LDR
1 x IR傳感器
1 x IR遙控器
1 x DS3231 RTC
GDP2846A TF卡MP3解碼板
1 x 4歐姆揚(yáng)聲器
原型板
各種杜邦連接器
連接線
18號(hào)銅線
5v電源
浮木
第2步:硬件
完整的電路按照上面附圖。
現(xiàn)在它已經(jīng)完成,看起來(lái)相對(duì)簡(jiǎn)單,但由于這是我迄今為止嘗試過(guò)的最大項(xiàng)目,因此隨著項(xiàng)目的進(jìn)展,設(shè)計(jì)的各個(gè)元素被添加并進(jìn)行了測(cè)試。這個(gè)迭代設(shè)計(jì)周期允許添加和測(cè)試新功能,同時(shí)限制錯(cuò)誤檢查的范圍,如果出現(xiàn)錯(cuò)誤。
我將在接下來(lái)的幾個(gè)步驟中詳細(xì)介紹一些絆腳石你經(jīng)歷了同樣的痛苦。
步驟3:硬件 - LED陣列
LED陣列通過(guò)將各個(gè)LED焊接到銅線結(jié)構(gòu)而形成。結(jié)構(gòu)可以根據(jù)您的特殊口味進(jìn)行修改,并且可以根據(jù)您的需要進(jìn)行調(diào)整,增加藝術(shù)性或簡(jiǎn)約性。
導(dǎo)線需要很厚才能支撐結(jié)構(gòu),但也要足夠精細(xì),以便將其焊接到LED上的連接焊盤(pán)上。我使用了18號(hào)線。
框架由連接到VCC的連續(xù)電路和用于GND的單個(gè)提升器組成。然后進(jìn)行信號(hào)的第三次連接。信號(hào)連接需要將LED串聯(lián)“菊花鏈”,鏈條從LED開(kāi)始指示小時(shí)。電線上的尾部留有很長(zhǎng)時(shí)間,因?yàn)樗鼈儗⒋┻^(guò)外殼,然后彎曲以將其固定到位。 GND線將在外殼內(nèi)連接在一起。
陣列標(biāo)記在一塊廢木上。標(biāo)記需要考慮到您焊接在LED背面的事實(shí),因此是相反的。我忘記了我的第一次嘗試,雖然錯(cuò)誤得以糾正,但框架并沒(méi)有我想要的那么好,所以制作了第二個(gè)版本。
在木頭上鉆孔以保持當(dāng)銅焊接時(shí),LED就位。您將找到最適合您的方法,但我首先單獨(dú)構(gòu)建了列,然后在外部添加最終幀之前添加了它們之間的信號(hào)連接。
檢查所有連接并仔細(xì)檢查以確保不存在焊橋。此時(shí)我將陣列連接到Arduino并編寫(xiě)了一個(gè)簡(jiǎn)單的程序來(lái)測(cè)試所有LED是否正常工作。
我最初認(rèn)為IR接收器是項(xiàng)目中的次要組件,我錯(cuò)了!
用于控制LED的時(shí)序非常精確被用于處理IR遠(yuǎn)程命令接收的中斷破壞了。這可以通過(guò)不使用遙控器來(lái)控制時(shí)鐘來(lái)解決,但我很頑固并決定這就是我想要的!一個(gè)不同的LED封裝(四線而不是三個(gè))可能也解決了這個(gè)問(wèn)題,但我已經(jīng)有了LED,看到上面,我很頑固!
解決方案是一個(gè)單獨(dú)的arduino接收到的命令來(lái)自IR遙控器然后通過(guò)串行鏈路將它們發(fā)送到時(shí)鐘Arduino。這意味著時(shí)鐘不處理中斷,并且可以根據(jù)主循環(huán)中的需要?jiǎng)幼鹘邮沾邢ⅰ?/p>
解決方案實(shí)際上非常簡(jiǎn)單但是需要一些修補(bǔ)才能理解為什么添加遠(yuǎn)程功能時(shí),時(shí)鐘停止工作。這證明了隨著項(xiàng)目的進(jìn)展構(gòu)建和測(cè)試每個(gè)組件的優(yōu)勢(shì)。當(dāng)添加遙控器后時(shí)鐘停止時(shí),很容易確定故障必須與此相關(guān)。
電線被焊接到IR接收器的引腳并進(jìn)行熱收縮。杜邦連接器被壓接但未插入殼體中。這是為了允許它們插入體內(nèi)而不需要太大的孔。
步驟5:硬件 - 音頻模塊
音頻模塊的附加功能是可選的,可以省略或用簡(jiǎn)單的壓電蜂鳴器代替。但是,二進(jìn)制時(shí)鐘的更好的警報(bào)音是撥號(hào)調(diào)制解調(diào)器音調(diào)序列?。?!
GPD2846A TF卡MP3解碼板允許播放存儲(chǔ)在micro SD卡上的音頻文件。它有一個(gè)內(nèi)置放大器,因此揚(yáng)聲器可以直接連接到解碼板。解碼器板以重復(fù)循環(huán)播放卡上的文件。這意味著可以通過(guò)選擇“下一步”來(lái)啟動(dòng)警報(bào),并且將重復(fù)音調(diào)直到選擇“播放/暫停”按鈕。 “prev”選擇僅需要通過(guò)長(zhǎng)按來(lái)控制音量(按下軟件長(zhǎng)度由軟件控制)。
帶有晶體管的簡(jiǎn)單開(kāi)關(guān)電路用于將音頻模塊連接到Arduino。 Jason Smith在此講解中提供的說(shuō)明用于確定開(kāi)關(guān)布置。對(duì)互聯(lián)網(wǎng)的研究表明,有些人將正電壓連接到正確的開(kāi)關(guān)墊;但是,我的測(cè)量表明它們直接連接到地面(這也是我不需要將地線連接到這些焊盤(pán)的原因)。我不知道我是否遺漏了一些東西,但我可以說(shuō)我所實(shí)施的工作正常。
揚(yáng)聲器導(dǎo)線應(yīng)切成一定長(zhǎng)度并焊接到解碼板上。將電線焊接到三個(gè)按鈕輸入和電源連接器。使用dupont連接器終止。將解碼器板粘貼到揚(yáng)聲器背面,以最大限度地減少安裝所需的空間。
在VCC和GND之間使用0.1uF電容來(lái)濾除噪聲。這是非常重要的。沒(méi)有它,Arduinos‘會(huì)在音頻開(kāi)始時(shí)重置。
步驟6:硬件 - 次要組件
以下描述了設(shè)計(jì)中使用的其他組件。所有這些都相對(duì)簡(jiǎn)單,但我們會(huì)對(duì)其進(jìn)行描述,以便您可以關(guān)注,重復(fù)和改進(jìn)我所做的工作。
實(shí)時(shí)時(shí)鐘(RTC)
RTC模塊(DS3231)用于確保即使從時(shí)鐘斷電也能保持時(shí)間。 DS3231聲稱非常準(zhǔn)確,可以跟蹤日期和時(shí)間。對(duì)于此項(xiàng)目,僅使用時(shí)間,但這對(duì)所需的連接沒(méi)有影響。
標(biāo)題已從模塊中移除并替換為電線。這是為了讓設(shè)備占用更小的空間,這對(duì)于將所有電子設(shè)備安裝在一塊浮木中非常重要!電纜的末端用杜邦連接器終止。
調(diào)光器
光敏電阻(LDR)用于測(cè)量環(huán)境光并改變顯示亮度。一個(gè)10k電阻用于構(gòu)建分壓器電路,然后由arduino讀取并轉(zhuǎn)換為數(shù)字值。然后,該值用于計(jì)算LED陣列的亮度。此項(xiàng)是可選的,如果您決定刪除,則應(yīng)更新代碼以在調(diào)用Set_Brightness函數(shù)時(shí)返回靜態(tài)值。
應(yīng)在代碼內(nèi)調(diào)整上下亮度級(jí)別以適合您的情況,我已經(jīng)將最大亮度設(shè)置為相對(duì)較低的水平,因?yàn)榧词乖诠饩€充足的房間里也發(fā)現(xiàn)它非常明亮。如果LED太亮,顯示屏很難讀取。
將電線焊接到LDR的支腳上,連接熱縮管并用杜邦連接器端接。
報(bào)警指示
A紅色LED指示是否設(shè)置了警報(bào)。連接的電阻是820歐姆,選擇它是為了確保LED相對(duì)暗淡并且沒(méi)有將注意力集中在它上面。如果您愿意,可以增加或減少價(jià)值。這個(gè)項(xiàng)目是可選的,但如果沒(méi)有它,你就不會(huì)知道報(bào)警的狀態(tài),我建議把它包括在內(nèi)。
將電線焊接到LED的支腳上,連接熱縮管并用杜邦連接器端接。/p》
步驟7:硬件 - 主電路板
原型板用于安裝Arduinos和其他電子元件。這包括每個(gè)板外項(xiàng)目的連接器的標(biāo)題。
花一些時(shí)間考慮每個(gè)組件的位置,以最大限度地減少所需的連接,并允許輕松創(chuàng)建軌道。我最終得到了電路板一端的所有連接器,其中VCC和GND軌道在電路板上運(yùn)行。
除了簡(jiǎn)化連接之外,還要確保最終布局能夠成為可能。包含在您選擇的外殼內(nèi),您仍然可以訪問(wèn)Arduinos上的USB連接器以上載所需的任何代碼更改。
兩個(gè)Arduinos之間的串行連接在一端有一個(gè)插頭。這是為了允許在代碼上傳期間斷開(kāi)連接。
步驟8:軟件
代碼分為兩個(gè)程序,一個(gè)用于Arduino充當(dāng)紅外接收器,另一個(gè)用于時(shí)鐘。
紅外接收器
在上傳紅外接收器代碼之前,遙控器發(fā)送的十六進(jìn)制值需要確定。 IRremote庫(kù)附帶標(biāo)題為“IRrecvDemo”的示例代碼。上傳到Arduino時(shí),按鍵的十六進(jìn)制值顯示在Arduino IDE的串行監(jiān)視器中。
需要記錄七個(gè)鍵的值,然后輸入“IR Receiver”的定義部分。我不確定為什么,但我的遙控器每個(gè)按鈕有兩個(gè)代碼,發(fā)送的代碼隨機(jī)出現(xiàn)。該軟件允許遠(yuǎn)程發(fā)送任何代碼。
所需的按鈕是:
向上
向下
向左
向右
警報(bào)
靜音
時(shí)間
二進(jìn)制時(shí)鐘
注釋包含在代碼中,并提供了實(shí)現(xiàn)的說(shuō)明。
上傳代碼后,將使用以下說(shuō)明:
設(shè)置時(shí)間:按時(shí)間然后 Up 或向下設(shè)置小時(shí),按向右然后向上或向下設(shè)置分鐘,按右返回時(shí)鐘
設(shè)置鬧鐘:按鬧鐘,然后按向上或向下設(shè)置小時(shí),按向右然后向上或向下設(shè)置分鐘,按向右返回時(shí)鐘
關(guān)閉鬧鐘(設(shè)置時(shí)):按鬧鐘
打開(kāi)睡眠:按睡眠
設(shè)置顯示顏色:按向左或向右循環(huán)選擇顏色
設(shè)置鬧鐘音量:按向上或向下提高或降低音量
播放鬧鈴:當(dāng)鬧鐘未被激活時(shí),按睡眠。
第9步:身體
我決定在時(shí)鐘體上使用一些浮木。這件作品需要足夠大,以便能夠?qū)⑵渫诳找匀菁{電子設(shè)備,但不要太大而不能放在架子上。我認(rèn)為身體的選擇也是在找到“正確的”片之前在海灘上游蕩幾天的借口!
替代材料可以用于身體。其范圍從一塊新木材到混凝土澆筑。您的想象力是唯一阻止制作真正獨(dú)特時(shí)鐘的東西!
一旦選擇了您的身體,您需要考慮安裝各種組件的位置以及需要鉆孔的位置。
首先為硬件制作腔體。這應(yīng)該盡可能大,以簡(jiǎn)化安裝,但仍保持木材的強(qiáng)度。我的作品實(shí)際上是一些交織在一起的根,所以必須小心不要完全敲掉。工具可用性有限,因此通過(guò)用大鉆頭鉆多個(gè)孔然后用鑿子將其平滑來(lái)制造腔。在進(jìn)行測(cè)試時(shí),測(cè)試是否適合cicuit板,以確保腔體足夠大。
完成后,可以為揚(yáng)聲器安裝額外的切口。在這樣做時(shí),請(qǐng)考慮下面對(duì)電路板的干擾以及如何進(jìn)行各種連接。
然后為各種組件鉆孔。測(cè)量LED陣列引線的間距,并且實(shí)際上證明是構(gòu)造鉛筆的厚度。這用于獲得正確的孔間距。旨在使所有組件緊密貼合,以簡(jiǎn)化它們的粘合。
鉆完所有孔后,用噴霧密封劑涂上木材。我選擇了一種低光澤產(chǎn)品。
第10步:最終裝配
噴霧消失后,清除各種組件的孔。
LED陣列是第一個(gè)安裝的組件。將引線推過(guò)孔直到達(dá)到所需的高度。然后將GND引線彎曲,使它們相互接觸并焊接。連接電線用于VCC,GND和信號(hào)。電纜的末端用杜邦連接器終止。然后使用熱膠以確保陣列中沒(méi)有移動(dòng)。
將靜態(tài)袋切割并膠合到位以覆蓋顯示器的裸銅線。這是為了確保它們?cè)诓迦朐桶鍟r(shí)不會(huì)短路??梢允褂弥Ъ軄?lái)實(shí)現(xiàn)相同的目標(biāo),但我有靜電袋并且沒(méi)有任何支架!
然后將所有其他組件安裝到位。使用熱膠將每個(gè)固定到位。一旦傳感器被固定,Dupont外殼就安裝在IR傳感器電纜上。
接下來(lái)安裝了原型板和RTC。兩者都用一個(gè)小螺釘固定。此時(shí)連接所有電纜,最后將揚(yáng)聲器/音頻模塊放置到位并固定。
底座上有一塊輕微的巖石,這是通過(guò)添加幾個(gè)橡膠腳來(lái)糾正的。支腳還確保揚(yáng)聲器螺釘不與工作臺(tái)表面接觸。
第11步:完成了!
如果你設(shè)法做到這一點(diǎn),你將有一個(gè)完整的,希望獨(dú)特的時(shí)鐘。請(qǐng)發(fā)布您的作品!
此時(shí)我無(wú)需改變或改進(jìn)設(shè)計(jì)。我的兒子們建議顯示器應(yīng)該自動(dòng)改變顏色,或者只是隨機(jī)間隔發(fā)瘋。我喜歡他們思考的方式,并且可能很快就會(huì)這樣做。
-
二進(jìn)制
+關(guān)注
關(guān)注
2文章
807瀏覽量
42335 -
時(shí)鐘
+關(guān)注
關(guān)注
11文章
1901瀏覽量
133242
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論