時(shí)鐘使用由Arduino控制的2個(gè)電子機(jī)械時(shí)鐘運(yùn)動來顯示日和月。第三個(gè)石英控制機(jī)芯顯示時(shí)間潮低潮或高潮。
日歷是全自動的,并考慮到閏年以及夏季和冬季時(shí)間的變化。
時(shí)鐘所有4個(gè)季度和每小時(shí)鐘聲都有完整的威斯敏斯特鐘聲。
時(shí)鐘是獨(dú)立的,不需要主時(shí)鐘。
它有一個(gè)內(nèi)置的解碼器,用于DCF77“原子鐘”。
輔助LCD顯示屏顯示時(shí)間,日期以及DCF77信號和解碼器信息。
請?jiān)诖颂幉榭次业娜諝v時(shí)鐘網(wǎng)頁。
步驟1:
時(shí)鐘設(shè)計(jì)圍繞一個(gè)12英寸(300毫米)的英文辦公室撥號時(shí)鐘盒,我沒有動靜地從Ebay上撿起來。
金屬表盤被剝掉,重新粉刷并用我自己的表盤設(shè)計(jì)重新標(biāo)記了
橡木表盤環(huán)繞被剝?nèi)ィ痖_了然后將它漂白以減輕顏色。
我安裝了鉸鏈和一個(gè)鎖扣,因此表盤可以打開可以訪問內(nèi)部的控件/電子設(shè)備。
圖1和圖2顯示了安裝在背板上的時(shí)鐘組件。
圖3顯示了表盤后面的空背框。
圖4顯示了安裝在表盤背面的3個(gè)時(shí)鐘動作。 30秒的日間機(jī)芯直接用螺栓固定在表盤上。月份和潮汐運(yùn)動安裝在擰到木制表盤環(huán)繞的條上。
這可以隱藏固定螺母。
步驟2:連接
Chimes fig 1 adafruit Audio FX Sound Board
時(shí)鐘通過adafruit Audio FX Sound Board + 2x2W發(fā)出季度小時(shí)和小時(shí)放大器
主板上有16MB的存儲空間,因此您可以存儲長達(dá)15分鐘的高質(zhì)量壓縮音頻。如果你使用單聲道而不是立體聲,那就加倍了
內(nèi)置大容量存儲USB - 將任何微型USB線插入聲卡和計(jì)算機(jī),你可以直接拖放文件,就好像它是一個(gè)USB密鑰
壓縮或未壓縮音頻 - 使用壓縮的Ogg Vorbis文件獲取更長的音頻文件或未壓縮的WAV文件
高質(zhì)量聲音-44.1KHz 16位立體聲。解碼硬件可以處理任何比特/采樣率和單聲道或立體聲
11觸發(fā)器 - 最多連接11個(gè)按鈕或開關(guān),每個(gè)按鈕或開關(guān)可以觸發(fā)音頻文件播放
立體聲線路輸出 - 在線路級別左右聲道均有突破,因此您可以隨時(shí)連接任何類型的立體聲或有源揚(yáng)聲器
五種不同的觸發(fā)效果 - 通過更改文件名稱,您
此時(shí)鐘可以使用2種不同的鈴聲選項(xiàng)
選項(xiàng)1小時(shí)鈴聲是從4英寸長鐘鐘和鐘琴的四分鐘鐘聲。選項(xiàng)2小時(shí)鐘是手鈴和長鐘鐘的組合,而QT鐘則是手鈴。
每個(gè)音符都是單獨(dú)采樣,然后在Audacity中放在一起,為鐘聲制作音樂的每個(gè)部分。
對于每種類型,總共有六個(gè)編鐘樣本al,每季度四個(gè),小時(shí)鐘兩個(gè)。四分之一的鐘聲分段組成,并提供威斯敏斯特式的鐘聲。
選項(xiàng)1(Glockenspiel)見上面的zip文件夾
有分段
第1節(jié)注釋FAGC Quarter Chime T01.wav
第2節(jié)注釋CGAF Half Chime T02.wav
第3節(jié)注釋AGFC Three Quater Chime T03.wav
第4節(jié)注釋CGAF Full Chime T04.wav
Quarter過去的時(shí)間播放第1節(jié)
半小時(shí)播放第1節(jié)然后第2節(jié)
小時(shí)過去一小時(shí)播放第1,2節(jié)然后第3節(jié)。
全部小時(shí)播放第1,2,3節(jié)然后播放第4節(jié)。
請注意,整小時(shí)響鈴在59分49秒播放,因此它可以在小時(shí)開始播放小時(shí)之前播放。修改第843行至第49行的代碼,例如if(minutes == 59 && seconds == 49 && chimepwr == 1)//允許完整的威斯敏斯特鐘聲在小時(shí)鐘聲開始之前響起49個(gè)老鐘聲
小時(shí)鐘包括兩個(gè)樣本都是單個(gè)鐘聲。第一個(gè)樣本持續(xù)不到一秒鐘,然后結(jié)束時(shí)鐘聲消失。小時(shí)短T06.wav
第二個(gè)樣本持續(xù)9秒,包含完整的單個(gè)鈴聲,因?yàn)樗АPr(shí)長T05.wav
在一個(gè)真正的鐘表中,錘子撞到鈴鐺,導(dǎo)致鈴聲響起。通常它會輕輕地消失,但如果時(shí)鐘再次敲擊鐘聲,例如如果它超過1點(diǎn)鐘鳴響,那么鈴聲會停止消失并再次大聲響起。
為了模擬這個(gè)效果,除了最后一個(gè)鐘聲之外,最后一個(gè)鐘聲都是短暫的鐘聲,最后9秒的鐘聲響起鈴聲響起。
選項(xiàng)2(手鈴)見上面的zip文件夾
有部分
第1節(jié)注釋FAGC Quater Chime T01.wav
第2節(jié)注釋CGAF Half Chime T02.wav
第3節(jié)注釋AGFC Three Quater Chime T03.wav
第4節(jié)注釋CGAF Full Chime T04.wav
小時(shí)過去小時(shí)播放第1節(jié)
小時(shí)過半播放第1節(jié)然后第2節(jié)
小時(shí)過去小時(shí)播放第1,2節(jié)然后第3節(jié)。
Full Hour播放第1,2,3節(jié)然后播放第4節(jié)。
請注意,整小時(shí)響鈴在59分47秒播放,因此它可以在小時(shí)開始播放小時(shí)之前播放。修改第843行到第47行的代碼,例如if(minutes == 59 && seconds == 47 && chimepwr == 1)//允許完整的威斯敏斯特鐘聲在小時(shí)鐘聲開始之前響起49個(gè)老鐘聲
小時(shí)鐘包括兩個(gè)樣本都是單個(gè)鐘聲。第一個(gè)樣本持續(xù)不到一秒鐘,然后結(jié)束時(shí)鐘聲消失。小時(shí)短T06.wav
第二個(gè)樣本持續(xù)9秒,包含完整的單個(gè)鈴聲,因?yàn)樗АPr(shí)長T05.wav
在一個(gè)真正的鐘表中,錘子撞到鈴鐺,導(dǎo)致鈴聲響起。通常它會輕輕地消失,但如果時(shí)鐘再次敲擊鐘聲,例如如果它超過1點(diǎn)鐘鳴響,那么鈴聲會停止消失并再次大聲響起。
為了模擬這個(gè)效果,除了最后一個(gè)鐘聲之外,最后一個(gè)鐘聲都是短暫的鐘聲,最后9秒的鐘聲響起鈴聲響起。
按下“測試音按鈕”時(shí),還會播放測試波形文件。這允許您設(shè)置音量而無需等待時(shí)鐘敲擊。 T00.wav
小時(shí)編鐘序列
小時(shí)。
1點(diǎn)鐘 - 長鳴聲
2點(diǎn)鐘 - 短鈴聲然后長鈴聲
3點(diǎn)鐘 - 短鈴聲,短鈴聲然后長編鐘
4點(diǎn) - 短鈴,短鈴,短鈴,然后是長鈴。等。
第3步:控制面板
除了主板上的Arduino復(fù)位開關(guān)外,控制面板還包含控制日歷時(shí)鐘的開關(guān)。
有關(guān)每個(gè)開關(guān)的詳細(xì)信息,請參見上面的表4。
步驟4:LCD顯示器
時(shí)鐘背板上安裝了4x20 LCD顯示器。
顯示器用于監(jiān)控DCF77庫和一些基本時(shí)鐘功能。控制面板上的開關(guān)用于打開和關(guān)閉顯示屏,通常僅在打開時(shí)鐘時(shí)保持打開狀態(tài)。
顯示屏顯示以下信息。
第1行
時(shí)間和日期。請注意,日期為英國格式dd/mm/yyyy
第2行
第1節(jié)在3個(gè)狀態(tài)之間旋轉(zhuǎn)
1顯示下一個(gè)計(jì)算的閏年
2 DCF77庫設(shè)置的石英調(diào)諧頻率
3以Hz為單位的石英晶體精度。
注意這不是時(shí)鐘精度,但DCF77信號應(yīng)該損失石英晶體精度。 DCF77庫通過將其與DCF77信號進(jìn)行比較,自動調(diào)整Arduino石英晶體頻率。
第2節(jié)時(shí)區(qū)和夏季/冬季時(shí)間指示器
第3行
第1節(jié)顯示是否在開機(jī)時(shí)禁用了鐘聲。由于聲卡在電源恢復(fù)時(shí)默認(rèn)為全音量,因此在開機(jī)時(shí)會禁用響鈴。我不想在停電后半夜被滿卷鐘聲吵醒。通過按控制面板上的“Chime On”開關(guān)啟用鐘聲。一旦開啟,它們一直持續(xù)到斷電并恢復(fù)。如果需要,控制面板上有一個(gè)手動“揚(yáng)聲器開/關(guān)”開關(guān)。
第2節(jié)顯示DCF77庫狀態(tài)“Sync‘d”,“Locked”,“Dirty”或“Fail”
第4行
第1部分以百分比顯示信號匹配。該庫預(yù)測信號應(yīng)該是什么,并將其與輸入的DCF77信號進(jìn)行比較。
Secton 2顯示月份電機(jī)邏輯的狀態(tài)。
步驟5:撥號
圖1帶有bezal的表盤可以安裝時(shí)鐘動作
圖2用Turbo Cad設(shè)計(jì)的空白表盤
日歷時(shí)鐘表盤是使用Turbo Cad設(shè)計(jì)和繪制的。
然后將最終設(shè)計(jì)作為巨型貼紙打印在A3 Lazertran噴墨紙上。
首先擦掉原來的表盤,去除所有舊油漆和刻字。然后涂上一層白色(白色在舊鐘表中看起來很糟糕)。然后將表盤貼紙應(yīng)用于空白刻度盤,然后在干燥時(shí),在頂部噴涂3層丙烯酸清漆。這使得貼花背景變得清晰,因此可以通過頂部的刻度字體看到白色表盤。
步驟6:日間運(yùn)動控制
日間運(yùn)動是30秒的奴隸運(yùn)動。這些機(jī)芯適用于辦公室和工廠的時(shí)鐘,并由主時(shí)鐘每30秒步進(jìn)一次。
我在這個(gè)時(shí)鐘中使用Synchronome機(jī)芯圖1,因?yàn)樗o湊。
圖2和3大多數(shù)30秒的從動裝置的工作方式與較大的根特型機(jī)芯相同。
零件和操作如下。
A是主棘輪,有120個(gè)牙齒
B操作電磁鐵
C電樞
D電樞桿
E驅(qū)動棘爪,它移動棘輪 - 驅(qū)動彈簧通常使驅(qū)動棘爪與棘輪嚙合,并且電樞遠(yuǎn)離電磁鐵
G后吸桿,當(dāng)銜鐵被吸引時(shí),可防止棘輪移動,這可能是由于振動或帶有外露表盤的時(shí)鐘 - 手上的風(fēng)壓力
H動量停止,這可以防止棘輪出現(xiàn)問題g每個(gè)脈沖移動一個(gè)以上的齒,并且用棘爪E將棘輪鎖定在脈沖之間
J限制銜鐵行程的行程極限停止,
當(dāng)電磁鐵B被來自主時(shí)鐘的脈沖激勵時(shí),電樞C被吸引,棘爪E抵抗彈簧F的壓力向右推進(jìn),并落入棘輪A上的下一個(gè)齒。當(dāng)脈沖停止時(shí),春天F驅(qū)動爪子! E向前,棘輪旋轉(zhuǎn)一個(gè)齒,相當(dāng)于表盤半分鐘。 ’分鐘‘手附著在。棘輪還通過一系列減速比為12比1的齒輪驅(qū)動’小時(shí)‘手。
工作電流運(yùn)動的工作電流為250 mA。電磁鐵的電阻在7.5到10歐姆之間,它們可以在電路中連接而不參考極性。
分針驅(qū)動用于指示月份的日期。這只手直接連接到由時(shí)鐘電機(jī)棘輪驅(qū)動的120齒輪。因此,在原始時(shí)鐘中,120 x 30秒脈沖將分鐘驅(qū)動1小時(shí)。
圖4 120齒輪被放大并疊加在時(shí)鐘顯示屏上,以顯示每顆牙齒與月中的日期的關(guān)系。每個(gè)月最多有31天,所以120個(gè)牙齒除以31,得到3.87個(gè)牙齒,可以移動1天的手段。這顯然是不可能的,因此時(shí)鐘設(shè)計(jì)為每天移動3手牙齒。這一個(gè)月最多使用3x31天或93顆牙齒。在每個(gè)月末,添加額外的脈沖以將日期移動到該月的第1天。由于每個(gè)月的天數(shù)變化,Arduino微控制器在每個(gè)月結(jié)束時(shí)計(jì)算出來,需要多少額外的脈沖才能將日期移動到當(dāng)月1日。
圖5顯示了多少額外的
這可以在圖6中看到。將日手從1天移動到下一個(gè)需要3個(gè)脈沖所以需要脈沖從每個(gè)月末開始回到第1天。
例如,在31個(gè)月結(jié)束時(shí),將發(fā)送額外的30個(gè)脈沖以在該月的第1天停止日期。
步驟7:月份撥號
圖1月份表盤
月份指針由Lavet型步進(jìn)電機(jī)驅(qū)動。
電機(jī)來自石英鐘表機(jī)芯,石英控制板切出。電機(jī)需要非常低的電流來驅(qū)動它,并且可以通過微調(diào)電阻直接從Arduino輸出驅(qū)動。電阻器用于調(diào)節(jié)電動機(jī)的電流,使其工作時(shí)不會過度驅(qū)動。
圖2通過將極性反轉(zhuǎn)到驅(qū)動線圈來驅(qū)動電機(jī),這使得永磁體齒形轉(zhuǎn)子(下面的紅色)轉(zhuǎn)動180°。每次驅(qū)動電機(jī)極性反轉(zhuǎn)時(shí),齒形轉(zhuǎn)子將繼續(xù)沿相同方向轉(zhuǎn)動。
Arduino的2個(gè)輸出引腳用于驅(qū)動電機(jī),1個(gè)引腳始終與另一個(gè)相反。
月份指針指針連接到秒齒輪。這個(gè)輪子每60個(gè)極性變化一次,并且由于一年中有12個(gè)月,時(shí)鐘電機(jī)需要步進(jìn)5次(60個(gè)牙齒/12個(gè)月),以便在月經(jīng)表盤上移動月份1個(gè)月。
請注意代碼總是發(fā)送6個(gè)脈沖,因?yàn)榈谝粋€(gè)脈沖將被忽略,因?yàn)闃O性不會改變。在6個(gè)脈沖結(jié)束時(shí),兩個(gè)Arduino引腳都設(shè)置為“低”,因此在下個(gè)月之前沒有電流通過驅(qū)動線圈。
在初始設(shè)置時(shí),月份手可由2個(gè)開關(guān)控制,“stepmonth 1”和“stepmonth 5”。這是一個(gè)單中心關(guān)閉鎖定開關(guān)。 “stepmonth 1”開關(guān)每秒對單個(gè)電機(jī)施加一次交替脈沖,并保持開啟直到手開始移動。如果開關(guān)保持在月份,則電動機(jī)將繼續(xù)步進(jìn),直到開關(guān)移動到中心關(guān)閉位置。 “stepmonth 5”開關(guān)每秒一次向蛾馬達(dá)施加5個(gè)交替脈沖。要使用將開關(guān)移至開啟位置并等待月份指針開始移動,然后返回中心關(guān)閉位置。然后月份將提前1個(gè)月然后停止。要設(shè)置月份指針,首先使用“stepmonth 1”開關(guān)將指針設(shè)置為一個(gè)月,然后使用“stepmonth 5”開關(guān)逐步執(zhí)行整個(gè)月,直到顯示正確的月份。
第8步:月運(yùn)動修改
UTS石英鐘運(yùn)動哈克
我使用U.T.S.運(yùn)動無花果在我的大多數(shù)時(shí)鐘中都是1,因?yàn)樗鼈冑|(zhì)量很好,有一個(gè)安全的分針固定,并且可用于大手的高扭矩型號。
如果你沒有U.T.S.然后你應(yīng)該能夠找到一種修改它的方法,因?yàn)樗鼈兌挤浅O嗨啤Nㄒ徊荒苁褂玫氖恰办o音”動作,掃描秒針,因?yàn)樗鼈儾灰蕾囉?秒脈沖來驅(qū)動它們。通過將薄螺絲刀向下滑入圖2中機(jī)箱頂部和底部可見的插槽,小心地將機(jī)芯分開,然后松開鎖定卡舌。圖3移除了頂部和底部的箱子部分。圖4然后可以將石英PCB和電機(jī)部分作為一部分提起,留下空殼和電池座部分。將電池端子拉出并丟棄。圖5現(xiàn)在可以修改上一步中移除的石英PCB和電機(jī)部分。圖6用鋒利的刀將軌道從集成電路(黑色斑點(diǎn))切割到其中一個(gè)驅(qū)動線圈。焊接到驅(qū)動線圈的電線并將它們送入空電池槽。圖7使用一小塊vero板19個(gè)孔×4個(gè)條帶構(gòu)成石英電機(jī)驅(qū)動接口電路。該電路具有保護(hù)齊納二極管x2 @ 8.3v,用于設(shè)置Lavett電機(jī)驅(qū)動電流的10K預(yù)設(shè)電阻,一個(gè)On/Off開關(guān)和一對PCP連接器,用于將電路連接到Arduino電路板的驅(qū)動輸出。圖8顯示了Vero板的后部和切割軌道的位置。圖9最后將電線從電機(jī)線圈焊接到Vero板,然后將外殼重新卡在一起。用少量熱熔膠將Vero板粘貼到位。
步驟9:潮汐時(shí)鐘
潮汐時(shí)鐘顯示低潮或高潮的時(shí)間。由于潮汐時(shí)間受到許多變量的影響,潮汐時(shí)鐘使用現(xiàn)成的潮汐時(shí)鐘模塊,只需連接潮汐手。
使用在互聯(lián)網(wǎng)上找到當(dāng)?shù)睾I的潮汐時(shí)間,然后設(shè)置時(shí)鐘運(yùn)動的調(diào)節(jié)輪。
步驟10:原理圖
圖1顯示原理圖和圖2 Arduino Uno連接
原理圖也可以在這里看到
步驟11:Vero Board布局
Arduino和音效板的組件安裝在vero板上。然后將其安裝在鐘表的背板上。電路板上安裝了一個(gè)反極性保護(hù)二極管
,這將使輸入電壓降低幾分之一伏。電路板顯示5.6伏連接,但需要調(diào)低電壓,以便在連接Arduino和音板之前電源電壓為5伏或更低。
步驟12:測試
由于時(shí)鐘是全自動的,因此無需手動設(shè)置時(shí)間和日期。所有測試都是通過將DCF77格式的虛擬無線電時(shí)間和日期代碼發(fā)送到時(shí)鐘來完成的。
幸運(yùn)的是,用于解碼此時(shí)鐘DCF77信號的DCF77庫的設(shè)計(jì)者Udo Klein也設(shè)計(jì)了一個(gè)DCF77用于Arduino的無線電代碼生成器。
使用發(fā)生器下載Udo的代碼并通過串口對Uno進(jìn)行編程。
一旦電路板被編程,就將1K電阻連接到引腳3和一個(gè)小環(huán)路連接到Gnd引腳。在您正在測試的設(shè)備的DCF77天線周圍纏繞一次導(dǎo)線。加載終端程序或只是從Arduino接口打開串行監(jiān)視器。將波特率設(shè)置為115200并按Enter鍵。您應(yīng)該在串行監(jiān)視器上看到以下內(nèi)容
正在運(yùn)行
輸出D3
到設(shè)定目標(biāo)時(shí)間使用以下格式之一
簡單模式: sYY.MM.DD hh:mm.ss
擴(kuò)展模式: x :YY.MM.DD hh:mm.ss w sbtl
當(dāng)前時(shí)間設(shè)置(YY.MM.DD hh:mm.ss w sbtl)w =工作日,s =夏季,b =備用天線,t = timzone更改預(yù)定,l =閏秒預(yù)定09.01.01 00:52:03 4 8001
這為您提供了如何設(shè)置時(shí)間的基本說明在Uno上的日期和日期已準(zhǔn)備好設(shè)置為您設(shè)備上的時(shí)間和日期。
作為測試我的日歷從6月30日到7月1日踩踏的示例,我發(fā)送此命令“x16.07.01 06: 30:00 1 1000“設(shè)定日期和時(shí)間至2016年7月1日06:30:00。我的時(shí)鐘設(shè)置為GMT,因此當(dāng)它解碼時(shí),它將設(shè)置為05:30。在1月1日的所有月份欄上,日歷設(shè)定為在06:00而不是午夜(由于時(shí)鐘運(yùn)動的噪音)進(jìn)行校正。
請記住,一旦您將命令發(fā)送到DCF77發(fā)生器,時(shí)鐘就會從您設(shè)置的時(shí)間開始,所以當(dāng)您的時(shí)鐘解碼時(shí),它將在幾分鐘后開始。這就是為什么我把它設(shè)置為05:30而不是06:00。這使我的日歷時(shí)鐘時(shí)間能夠解碼準(zhǔn)備好在06:00進(jìn)行時(shí)間和日期的信號。
這是另一個(gè)例子
觸發(fā)GMT的閏秒(CET需要一小時(shí)休息)
發(fā)送x15.01.01 00:45:00 1 0001
輸出
正在運(yùn)行
輸出D3
當(dāng)前時(shí)間設(shè)置(YY.MM.DD hh:mm.ss w sbtl)
w =工作日,s =夏令時(shí),b =備用天線,t = timzone更改預(yù)定,l =閏秒預(yù)定15.01.01 00:45:00 1 232001
設(shè)置目標(biāo)時(shí)間使用以下格式之一
簡單模式: sYY.MM.DD hh:mm.ss
擴(kuò)展模式: x:YY.MM.DD hh:mm.ss w sbtl
當(dāng)前時(shí)間設(shè)置(YY.MM.DD hh:mm.ss w sbtl)
w =工作日,s =夏令時(shí),b =備用天線, t = timzone更改預(yù)定,l =閏秒預(yù)定15.01.01 00:45:00 1 232001
這實(shí)際設(shè)置我的時(shí)鐘(設(shè)置為GMT)一旦解碼到12月31日23:45 2015加上幾分鐘的解碼時(shí)間。
我在主時(shí)鐘上使用它來檢查注入的閏秒被檢測到并傳遞到我的1秒從時(shí)鐘上。
更多示例
x15.01.01 00:45:00 1 0001 = 23:52:00 2015/12/12 gmt + 0觸發(fā)閏秒
x14.03.30 01:50:00 1 0010 = 00:45:00 30/03/14 gmt + 0觸發(fā)時(shí)鐘+1小時(shí)
x14.10.26 02:50:00 1 1000 = 02: 45:00 26/10/14 gmt + 1觸發(fā)時(shí)鐘返回
x21.03.01 05:20:00 1 1000 = 21.03.01 05:20:00 1 49000 2月28日之后沒有閏年觸發(fā)在06:00hrs
x16.02.28 06:20:00 1 1000 = 05:20 28 feb 2016閏年步驟到29
x16.03.01 06:30:00 1 1000 = 05:30 01 2016年3月閏年步驟從29到01
x16.07.01 06:30:00 1 1000 = 05:30 2016年7月1日步驟從30到01
x14.03.30 23:30:00 1 0000 = 22:30 2014年3月30日
x14.03.30 01:30:00 1 0000 = 00:30 2014年3月30日
x14 .03.30 13:30:00 1 0000 = 12:30 2014年3月30日
步驟13:代碼
代碼v18 for Udo Klein的v3庫
-
時(shí)鐘
+關(guān)注
關(guān)注
11文章
1736瀏覽量
131601 -
Arduino
+關(guān)注
關(guān)注
188文章
6472瀏覽量
187378
發(fā)布評論請先 登錄
相關(guān)推薦
評論