從去年年底起,開始規劃無線氣象站的DIY項目,苦于項目過于龐大,調試很繁瑣(涉及無線主從通訊系統,數據采集系統,數據顯示界面等)一直處于停頓狀態。
去年10月份,搭建起一個微型的太陽能供電系統,由20W太陽能電池組,太陽能充電控制器,20AH/12V電瓶及一個電壓轉換盒組成,提供若干12V、9V、5V電壓用于手機/充電電池/山寨平板/移動電源充電、耳放/電腦音箱/應急燈供電,但是春天以來,陰雨過多,電池電壓偏低,而充電控制器無電壓顯示功能,只能頻頻用萬用表測量放電、充電電壓,很是麻煩,當然不去管它也是可以的,因為充電控制器有防欠壓過壓保護功能,無需太多關注于電池電壓,但是本著閑著也是閑著,不如干點什么的精神,決定DIY一個微型的電壓表頭,初步設想是由被測電壓提供3.3V或5V電壓,采用ATTINY13和8段數字顯示器組成測量系統,無其他控制、設定、報警功能,一個純表頭。ATTINY13在AVR中算是最便宜的一種了,在本次設計中也是最合適的,只有8只管腳,4個ADC通道/10位精度,5個可用輸入輸出引腳,1只引腳作為ADC測量通道,2只引腳作為顯示接口,還能富裕2只作為擴展。
這個表頭初步設計成最高15V的測量值(電池充電截至電壓是14V多點),由于采用1117低壓差穩壓芯片,所以最低測量值是3.3+0.2v或者5+0.2v,取決于采用哪個電壓值的1117了。由于引腳不多,這次打算采用內部的1.1V基準電壓,因此先設計計算了電壓分壓系統,根據最高電壓測量值和基準電壓選擇了合適的電阻,采用單圈電位器作為微調(沒打算采用多圈的精密電位器,因為對系統精度要求不是很高,跟普通萬用表差不多就行)。
月初先搭建了硬件電路,電源由檢修電源模擬。前天晚上開始了軟件設計,由CAVR自動生成了代碼,但是沒仔細去研究這些代碼,只想早點出個結果,以證實硬件電路的可靠性,結果操之過急,唯一的一片ATTINY13被鎖,宣告項目暫時終止。昨天上原來買的那家淘寶店,一口氣買了10顆芯片,今天中午就到貨了。為了不再因為無知導致時間金錢損失,晚上靜下心來研究了手冊,大致搞清楚了若干相關寄存器的用法,然后開始修改程序,先不啟動ADC,而是手動賦予了一個固定值來模擬轉換結果,結果證實了轉換參數及顯示程序的正確性,然后調整電源電壓,結果電壓到6V以下時,顯示器顯示了一個貌似正確的數字,但是電壓再高,顯示的數字馬上變得混亂起來,直至系統死機,但是寫入模擬值,則不會出現此問題,初步判斷是電路問題,而不是系統寄存器、轉換參數的問題導致的溢出。最后在參考書中找到一條,是書中特別申明的,就是必須要在電源間加一個退耦電容。找到一起買來的104獨石電容焊接到ATTINY13的電源引腳間,再打開電源,慢慢升高電壓,當電壓超過6V時,數字不在無規律跳動,故障原因找到!!
最重要的毛病解決了,接下來就是要設計電路板,優化程序了,這些都是今后幾天的事情了。
結語:其實早在13年前,我已經設計了比現在精密的多的電壓電流綜合采集系統,時過境遷,當初的工作變成了業余愛好,有很多經驗丟失了,對模擬系統不再感冒,只是跟一些高級外圍器件打交道,慢慢的對系統內部資源不再感興趣,今天算是找回了當年調試的感覺了~~
直接上照片!
電路板背面

電路板正面
和顯示器組裝一起的樣子

裝入機殼(機殼是裝工字釘的塑料盒,不阻燃)

工作時的樣子
跟當初設想時還是有了一點區別。 ATTINY13使用了貼片封裝,這是首次在自制的玩意兒上用貼片。 穩壓芯片由1117改成HT7550-1,原因就是1117效率太低,耗電太厲害,使整機的電流達到了10毫安,這對于長時間連續使用電池供電的設備是不合適的,修改后,整機電流降到了2.5毫安。 顯示器用了4位的二線制液晶顯示器,體積稍大了點,還好正合適。 ISP接口由常用的2×5排針,改為6針的SIP6。 機殼由原來準備好的工程塑料材質改成用完的工字釘包裝盒,因為原來的機殼厚度不夠,又不能把銅柱和排母排針打磨得太厲害。 為了調整方便,將可調電阻安裝在反面。 軟件方面沒有改動。
剛開始測試時發現顯示數值跟萬用表有非線性的誤差,懷疑問題有二,一是表頭本身問題,在這種炎熱的夏天出現較大的溫漂,二是萬用表有問題,又用另外一塊表測量,誤差則不算太過分,同時發現這兩塊表顯示數字不同,究竟哪塊表有問題已是說不清楚,為此特買回一塊UT61E四位半萬用表用于校正,經這塊表多日校正,誤差已在可接受范圍內,也就是20毫伏左右。
|