如何自己製作一個 divergense meter(輝光管時鐘)?
別收藏了,喜歡就點個讚唄!!
關於輝光管本身就不做介紹了,其他答案已經描述的很詳盡了。
先上完成圖~
關燈效果
功能
- 6位數字的時間/日期顯示。
- 4位有效數字的溫度/溼度顯示。
- RGB全綵顯示/呼吸燈。
- 微信Airkiss/ESPTouch配網。
- APP切換/控制/主動校時。
- 高精度時鐘+斷電鋰電池供電。
- Crossfade數字切換效果。
設計
- 輝光管:IN-14
- 主控:STM32F103
- 輝光管控制晶片:HV57708
- Wi-Fi模組:ESP-12s
- 時鐘晶片:DS3231
- 溼溫感測器:SHT30
- RGB:WS2812C
- 雙層沉金PCB
- 可替換腳座
升壓部分
參考@Sadudu的電源設計,不知道為什麼10mΩ的限流電阻會導致過流,燒壞一塊HV57708......將限流電阻提高到50mΩ解決問題。同時將電感值降到150uH(完全聽不到嘯叫)以提高驅動力。
一開始輸出電容使用的是MLCC電容,但發現帶上負載之後會產生不太能夠接受的嘯叫......本著完美主義的精神,試了一大圈不同的電容,最後發現還是電解電容比較靠譜,畢竟這次設計中對體積要求不高。
主控部分
STM32似乎沒有什麼好說的......
輝光管控制部分
用了大家都在用的57708,效果很棒。值得一說的是57708的引腳連線在輝光管的陰極,晶片必須工作在 反向模式 。訊號為低電平時引腳輸出為高電平(80V),這樣陰極與陽極之間就無法產生170V左右的壓差而熄滅,反之亦然。
Wi-Fi模組
基於AT開發,用的樂鑫官方AT庫。
時鐘
使用了一塊CR1220鋰電池供電,保證斷電依然能夠精準走時。
溼溫感測器
用了Sensirion公司的一個溼溫感測器。因為是板載設計,所以在佈局上也避開了其他元器件,同時不在其下方鋪銅,打孔至背面形成一個孤島,儘量能夠更好更準確的測量溼度/溫度。
RGB
特意使用了WS2812的低亮度版本,畢竟作為氛圍燈無需太亮。
製作
PCB
畫板子還是比較累人的,前前後後用了好幾天。
然後在捷X打樣。阻焊顏色是消光黑,沉金工藝。實際效果還是不錯的。
焊接
F103拖焊就行了,沒想象中這麼難。
相當不好焊的是SHT30。因為Datasheet說手工焊接350度必須小於5秒,又是DFN封裝,手必須非常的穩。搞壞一塊,還好第二塊成功了。
控制部分
高壓部分
57708
然後是測試,萬用表點一點~
完成之後拿洗板水仔細擦淨,搞定~
外殼
CAD大概畫一畫就丟給TB做了,一共就兩塊亞克力板子~
軟體
時間顯示
最基本的是時間顯示。最早是在 這裡 看到有人實現了這樣的顯示切換效果,就此就成了怨念,決心要實現它......
Crossfade 效果的核心就是 PWM Control ,所以對於輝光管來說,最直接的方法就是使用主控來控制三極體。所以現在絕大多數的解決方案也都是通過三極體來實現的,包括上面的例子。這就帶來了問題,因為IN14的引腳很多,即使是隻是用數字,6位顯示也需要60個三極體。而我不想用那麼多隻三極體......
所以這時候就要讀一讀Datasheet了。
開啟HV57708的datasheet,發現57708的Clock速度非常快,達到了8MHz。也就是說我理論上完全可以通過序列通訊調整輝光管的亮暗訊號陣列來模擬PWM。
需要通過模擬實現PWM,就要對57708的資料傳輸方式進行深刻的瞭解。
57708將64位序列電平資料通過4根通道輸入鎖存器,然後根據時鐘變化將這些資料並行輸出到每個引腳。
而輝光管的每一位數字都有自己的“座位號”。根據我的硬體設計,我將64位電平資料(實際只用到60位,每個管子顯示10種數字)分為兩組並且列出它們位於整個陣列的位置。
那變化的本質是什麼呢?例如,我要將顯示秒數的個位從“5”漸漸變換很“6”,在這個過程中,其實要做這些事:
- 將“5”所在電極的導通時間(佔空比)逐漸減小至零
- 將“6”所在電極的導通時間(佔空比)逐漸增大至完全導通
- 1與2同時進行
如果考慮到進位,切換操作等還會需要更多的管子參與進來,所以需要對整個陣列進行操作。
通過對TIM的無限次調教和不同佔空比的測試,最後還是得到了很好的效果~視訊放在最後~
溼度/溫度顯示
沒啥特別的直接上圖~最後沒有裝上冒號,因為覺得裝上不太好看,腦補一下當中有個dot
Wi-Fi連線
Wi-Fi是基於官方AT庫開發的。基本通訊過程就是ESP12S在區域網中建立一個固定IP的TCP伺服器,然後手機APP作為客戶端去訪問,透傳資料給主控,主控解包後讀取資料再做相應的動作。由於AT庫很強大,支援微信雲,也許以後會研究一下做一些IoT的東西。
但是想了想,一個鐘要訪問雲幹什麼......
APP
由於是基於Wi-Fi控制的,所以需要一個APP來進行時間日期切換,調整呼吸燈等操作。但是前端開發已經超出了我的能力範圍,所以就用瞭如下巨醜的APP來湊活一下。雖然醜,但是實現功能是完全沒有問題的。
總結
Emmmm.....其實還是有許多方面需要改進的,如果有2.0版本的話,要做如下的升級:
- 電源部分優化做小,使整體板子小一點
- 可能會做藍芽+Wi-Fi的通訊,因為手頭上正好有ESP32
- 做一個好看一點的APP,可能會用json來使通訊更規範
- 可能會加入鬧鈴之類的
- 排針的設計有點愚蠢,可能之後就用焊盤了,燒錄完再焊下來,這樣更美觀
- 外殼可能會用木頭或者鋁合金之類的其他材料,依然保留頂部透明
當然,做這個東西是給@黃小小小小圓 的。
最後
放一個視訊吧
無聲視訊,各種效果展示~本次設計參考了@Sadudu 和@silentcedar的開源部分的內容,感謝!
來源:知乎 www.zhihu.com
作者:筆刀君
【知乎日報】千萬使用者的選擇,做朋友圈裡的新鮮事分享大牛。點選下載
此問題還有23 個回答,檢視全部。
延伸閱讀:
白噪音抵消外界噪音的原理是什麼?