冷氣室外機定時器完工
上次把我們家冷氣冰水主機的開關改為搖控後, 當然是方便了很多, 至少不用半夜睡到一半覺得太冷的時候, 穿著內褲跑去後陽台關冰水機, 但是還是要起床按搖控器, 有點麻煩.
做個定時器吧.
因為不想破壞原來的搖控器, 所以我去買了另一個搖控器:
先帶去辦公室用頻譜掃過, 把它的頻率調成跟原來的搖控器一樣 (大概在 315MHz 附近), 再把 HT12 編碼 IC 的碼跳成跟原來的搖控器一樣, 就可以搖控了.
接著, 用 89C4051 做一個定時器:
用三顆 7-segment LED 顯示時間. 時基來自於 24MHz 的 crystal. 程式用 Keil C 寫的, 大概兩三百行吧. 我用 timer1 的 auto-reload mode, 每 0.2ms 產生一次中斷. ISR 裡再用兩個 counter, 各自產生 10ms 跟 1s 的 event. 10ms 的 event 用來掃 7-segment LED, 1s 的用來更新時間. 電路圖看這裡
兩個按鈕, 一個用來增加時間, 一個用來減少時間. 兩個輸出, 透過光偶合去控制搖控器上的兩個按鍵. 本來找不到合用的光偶合, 又沒空去光華商場買 PC817, 已經打算要放 relay 上去了. 後來在零件盒裡找到幾顆以前在網京時留下來的 AB37S, 剛好可以用.
搖控器吃一顆 12V 鹼性電池的電. 本來想幫它用 MC34063 做個 DC-DC 的升壓電路打上去供電, 後來覺得沒必要, 搖控器一顆電池可以用好幾年, 幹嘛給自己找麻煩, 而且光偶合已經把兩邊的接地隔開了, 供電電源不一樣也沒關係. 於是就讓搖控器吃原來的電池.
全部的東西裝在一個透明塑膠盒裡, 盒子是光華買的零件整理盒, 沒有格子的那種. 用三顆 AAA 電池供電, 因為 89C4051 用 2.7V 就可以工作, 所以就算放三顆鎳氫上去也沒問題.
按鈕為了要裝在打孔的盒子上, 只好去買那種紅色的彈簧按鈕, 觸感當然比 tact switch 差多了. Tact switch 裡的 metal dome 可以提供良好的力回饋, 讓按鍵的觸感清析明確, 但是這種按鈕裡面就只有一個彈簧當負載, 按到底就是按不下去, 也不會有力回饋. 上一次用這種按鈕可能是小時候在做動動腦的時候, 沒想到現在還買得到…
值得一提的是, 我這次用到了 89C5041 裡面一個以前從來沒用過的功能: power down mode. 只要把 PCON 暫存器的第二個 bit 設起來, 89C4051 就會進入 power down mode, 所有的 port 保持在原來的狀態, X’tal 停止振盪. 如果 I/O port 的狀態設得好, 讓它沒有 sink 或 source current, 整顆 89C4051 的耗電可以降到數個 uA, 等於是關機. 要把它叫起來只要送 reset 就可以了. 這樣我就不用另外再做電源開關了.
現在我可以在晚上睡覺前設定室外機跑兩個小時就自動關機, 配上主臥室裡換過的, 有定時功能的送風機控制器, 再也不用怕睡覺冷氣太冷, 或是睡一半要起來關室外機.
讚