閑來無事,在網(wǎng)上買了個艾默生HD4850-2電源,看了看網(wǎng)上其他人改成調(diào)壓調(diào)流的,感覺還不錯。心想,我也弄一個吧,但是又想搞點另類的,結(jié)果就做成這個樣子了。先來張整體圖
各位看出來了,改動很大,連顯示都改了。沒錯,重新做的顯示部分(連面板都自己做了)。說下參數(shù):輸出電壓4.5-58V,分辨率0.1V輸出電流0.5-50A,分辨率0.1A,電壓和電流的波動大約為1%。
關(guān)于做這個的教程呢,我只能說說自己的思路,因為做這個不可能按照教程照搬照抄的,完全照做一定做不出來,因為你必須懂一些東西。而懂這些東西的人只要看看思路就能成了,不需要多詳細。我的思路是這樣的:首先,調(diào)壓的原理,就是和別人的一樣,通過改動UC3875 這個IC的第4腳調(diào)節(jié)電壓。
(這張是借的圖)實際上我是把這個可調(diào)電阻拆掉了換成了PC817光耦(同時也把R511阻值變動了),然后用單片機控制給光耦的電壓,然后光耦產(chǎn)生不同的阻值,就是這樣子。電流調(diào)節(jié)方面,我沒再改動別處,只是在輸出部分進行了電流采樣,然后也輸入單片機。如果輸出的電流高于設(shè)定值,那么就降低輸出電壓,直到達到預(yù)設(shè)值,反之亦然,這樣就把調(diào)節(jié)電壓和調(diào)節(jié)電流統(tǒng)一歸結(jié)為調(diào)節(jié)電壓。
采樣部分用的是ADS1115模塊,電壓輸出部分用的是MCP4725模塊,控制器用的arduinoMINI,它們之間用的是I2C通訊,連接到控制面板用的是串口通訊。在運行時串口接收控制面板發(fā)來的電壓、電流設(shè)定,然后向控制面板發(fā)送實時電壓電流。
就是這個樣子,按鍵設(shè)置各個功能??刂泼姘咫娐罚?a target="_blank">
這個就是用的Mega2560單片機,也是用的arduino 編程,屏幕直接用的串口屏。單片機向控制板發(fā)送需要設(shè)定的電壓和電流,接收返回的電壓電流數(shù)據(jù),同時負責(zé)接收按鍵設(shè)定并存儲、顯示。還需要通過esp8266模塊無線接收上位機發(fā)來的控制信息。反正它的任務(wù)就是接收、顯示、存儲。各部件之間都是串口通訊,自己定義的數(shù)據(jù)格式。最后是所謂的上位機,我用labview寫的上位機軟件,通過WIFI來控制電源運行,以實現(xiàn)簡單的可編程效果,下面是圖
除了按鍵能實現(xiàn)的功能以外,多了一個編程輸出,能自動單次或者循環(huán)按照你預(yù)先設(shè)定的電壓或者電流運行,不過響應(yīng)速度比較慢,從5v上升到50v的話,需要4-5秒吧,再快了很容易過沖,這個不能和線性電源相比。對于空載情況下不能調(diào)到25v以下的問題我是這么解決的:做了一個所謂的智能負載,就是通過測量輸出電壓來調(diào)整負載電阻的大小,電壓高的話就把負載電阻調(diào)大,反之調(diào)小,這樣可以避免固定負載,如果阻值大了電壓降不下來,阻值小的話如果電壓輸出較高功耗過大的弊端。當(dāng)然,這又費了一個單片機...這個里面就是智能負載電阻其實采用這個方法以后,輸出電壓還能降到更低,考慮沒啥用就沒弄。