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

電子萬年歷設(shè)計與制作論文資料
基于51單片機的多功能萬年歷設(shè)計
數(shù)字萬年歷設(shè)計論文資料
零死角玩轉(zhuǎn)STM32——中級篇
基于51單片機的電子萬年歷的設(shè)計論文資料
利用CKS32F107xx系列RTC的鬧鐘實驗
如何利用RTC外設(shè)實現(xiàn)萬年歷功能
【RA-Eco-RA2L1-48PIN-V1.0開發(fā)板試用】——使用RTC實現(xiàn)萬年歷年月日時分秒
【RA-Eco-RA4E2-64PIN-V1.0開發(fā)板試用】使用任意定時器實現(xiàn)軟件萬年歷
基于FPGA的LCD1602液晶顯示模塊驅(qū)動設(shè)計

用免費PCB,做了個桌面擺件!網(wǎng)友:怎么回事,好想復(fù)刻!

評論