by:湖北民族大學 智能科學與工程學院 龍子鳴
2023.3.5
轉載以及運用請注明出處?。?!
摘要:
本文介紹了一種基于LM2596和ESP32的數(shù)控直流電源設計。該電源采用LM2596為主要電源芯片,ESP32作為控制芯片,實現(xiàn)對電源輸出電壓的精確控制。題目要求如下:

一:電源芯片選型以及理論分析
1.1電源芯片選型
在ESP32數(shù)控電源設計中,電源芯片的選型是非常重要的環(huán)節(jié)。常見的電源芯片有線性穩(wěn)壓芯片和開關穩(wěn)壓芯片兩種類型。在線性穩(wěn)壓芯片中,LM317是一種較為常見的芯片,而在開關穩(wěn)壓芯片中,LM2596是一種較為常用的芯片。
LM317是一種可調線性穩(wěn)壓器,具有簡單的電路結構、穩(wěn)定的輸出電壓和較高的精度,適用于低功率應用。但是,LM317的效率較低,在高負載情況下容易發(fā)熱,需要散熱器等額外的電路設計,且電流輸出能力較弱,無法滿足要求。

相比之下,LM2596是一種開關穩(wěn)壓芯片,具有高效率、低壓降和較好的負載能力等優(yōu)點,適用于中高功率應用。它可以通過外部電路進行調節(jié)和控制,可以實現(xiàn)對輸出電壓的精確控制,同時還具有多種保護功能,如過壓保護、過流保護和短路保護等。

1.2理論分析
在此特別感謝這篇文檔的博主,本文設計思路均來源于: (28條消息) 關于用LM2596做的DC-DC數(shù)控電源_lm2596數(shù)控電源_想吃&想胖的博客-CSDN博客
最主要起到反饋作用的是FB反饋端,我也就是通過調整FB反饋端電壓值從而達到電壓可調的目的。
此電路在原作者的基礎上,有所修改:
原博主在DAC輸入部分采用了一級運算放大器同向放大電路用于將單片機輸出的DAC電壓提升十倍(可自行百度搜索:同向放大電路),公式為:Vo = (1+R2/R1)Vi。修改的地方是:將下圖中的9KΩ換為了10Ω,放大倍數(shù)相當于1.001倍,相當于沒有放大,在實測的過程中,并不需要放大。
原博主在反饋端采用的分壓電阻為15kΩ.為達到在12V內可調,實測在6.2KΩ是輸出電壓最大為:13V,滿足要求,故修改R2為6.2K歐姆。
原博主在采樣電阻部分使用 是5mR的金屬采樣電阻,在實際運用中,由于電阻的阻值太小,在弱電流的工作環(huán)境下,電流檢測放大倍數(shù)需要足夠大,所以,選擇200mR的金屬采樣電阻。
新增電流測量以及電流不測量擋位,可使用2.54 1*2P跳線帽進行選擇。
新增一級LC濾波電路,濾除相應紋波。
關鍵的理論如下圖所示:

根據(jù)以上敘述最后畫出以下電路:

特別注意,運算放大器的輸入電壓應該大于5V,我采用的是12V供電,理論輸出最大電壓為12V.
二:單片機選型以及模塊選型
2.1單片機選型分析
在數(shù)控電源中,選擇單片機的關鍵因素包括性能、功耗、內存和外設接口等。以下是ESP32與其他單片機的對比分析。
首先,我考慮了Atmel公司的ATmega328P單片機,它是一個流行的低成本微控制器,用于許多開源硬件項目。ATmega328P的性能相對較低,具有8位處理器和20 MHz時鐘頻率。它只支持UART、SPI、I2C等有限的外設接口,并且沒有內置的Wi-Fi和藍牙模塊。雖然ATmega328P是一種可靠的選擇,但它的性能和功能限制了它在數(shù)控電源中的應用。
其次,我考慮了ST公司的STM32F103C8T6單片機,它是一種基于Cortex-M3內核的高性能微控制器。STM32F103C8T6具有72 MHz的時鐘頻率和64 KB的閃存內存,支持多種外設接口,如UART、SPI、I2C、USB等。雖然STM32F103C8T6的性能比ATmega328P更高,但它仍然沒有內置的Wi-Fi和藍牙模塊。此外,STM32F103C8T6的功耗較高,適用于功率要求較高的應用。
最后,我考慮了ESP32芯片,它是一種性能和功耗平衡的解決方案。ESP32具有雙核64位處理器,最高240 MHz的時鐘頻率和520 KB的SRAM內存。它還內置了2.4 GHz Wi-Fi和藍牙4.2雙模支持,以及豐富的外設接口,如UART、SPI、I2C、ADC等。ESP32還支持多種睡眠模式,可以實現(xiàn)低功耗應用。在數(shù)控電源中,我需要使用Wi-Fi和藍牙模塊與其他設備進行通信,并需要高性能來實現(xiàn)快速響應和精確控制。因此,我選擇ESP32作為數(shù)控電源的單片機。
2.2模塊選型分析
2.2.1 ADC采樣模塊
ESP32的ADC采樣準確性與其工作條件和外部環(huán)境有關。在理想情況下,ESP32的ADC可以實現(xiàn)12位分辨率,即可以將電壓轉換為數(shù)字值,范圍在0到4095之間。這意味著,如果使用3.3V參考電壓,每個數(shù)字單位相當于3.3V/4096 ≈ 0.0008V,即0.8mV。因此,ESP32的ADC在理論上可以實現(xiàn)相對較高的準確性。
但是,實際上,ESP32的ADC采樣精度可能會受到多種因素的影響。例如,ESP32的ADC可能受到溫度變化、供電噪聲、輸入信號噪聲等因素的干擾。此外,ESP32的ADC還具有非線性誤差和漂移誤差,可能會導致測量誤差。因此,為了確保ESP32的ADC采樣精度,需要在設計和應用中考慮這些因素,并采取適當?shù)拇胧?/p>
因此,為滿足采樣精準度,我們ADC采樣采用了模塊模塊來達到目的,最常用的ADC模塊---ADS1115.

某寶的售價在10-20不等,分為進口原裝和國產替代兩個版本。

參照datasheet中的描述,我們采用的5V供電,便可實現(xiàn)-0.3 ~ 5.3的ADC電壓輸入檢測。我們的輸入電壓為0~12V,經過分壓之后輸入ADC的電壓范圍為:0~1.2V故,采用ADS1115 12位ADC采樣芯片滿足要求,具體的實現(xiàn)過程可以參考優(yōu)信電子(電子人都熟悉的某寶商鋪,哈哈~)這篇博客:(28條消息) Arduino UNO驅動ADS1115模數(shù)轉換模塊_arduino uno 可以數(shù)模轉換嗎_優(yōu)信電子的博客-CSDN博客
2.2.2 DAC模塊
DAC 模塊的用途也就是用來改變LM2596-ADJ反饋端的電壓值,因此需要較高的精準度,雖然esp32擁有DAC輸出口,但是當esp32與服務器交互時,可能會出現(xiàn)DAC電壓的下降(參考的某一篇博客),所以選擇了單獨的模塊設計。

的選擇非常簡單,就是一個偶然間刷到了一篇CSDN的博客,沒錯又是優(yōu)信電子的。(28條消息) 51系列、arduino、stm32系列驅動DAC模塊TLC5615輸出指定電壓(可修改為波形輸出)_dac驅動指針電壓表_優(yōu)信電子的博客-CSDN博客
2.2.3 OLED模塊
這個模塊沒什么好講的,既然能夠研究到到數(shù)控電源的朋友,我相信OLED 一定是個小case,所以OLED在這里就不展開了,具體的可以參考以下博客:
ESP8266--Arduino開發(fā)(驅動OLED顯示文字和圖片)_esp8266驅動oled屏代碼_貝勒里恩的博客-CSDN博客
三:功能調試
3.1輸出電壓調試

在原理部分引用原理博客中,說到:最后的DAC輸出電壓與LM2596-ADJ的輸出電壓時一個非線性關系,可能需要用到單片機的補償,會用到反饋補償算法,可能是由于原博主沒有時間完善以及論證,在我的三版PCB之中,經過數(shù)次的理論推導研究,最后得到的關系是一個線性關系,且R2的值可達到0.999978。操作流程如下;
連接好電路;
校準TLC5615的電壓,在上面關于TLC5615的博客中說到計算公式為:輸入數(shù)值=Vout*250(大家可以自行嘗試,最后的輸出電壓一定不是你期待的那個值,多多少少會有偏差);可能這是理想情況下的數(shù)值,在實際的測試過程中,這個公式是需要自己擬合的(定義N個輸入數(shù)值,測得輸出電壓,最后通過數(shù)學工具,Excel or Matlab得到最后的關系式,建議N大于10),最后得到線性關系。
上一步說到的是,TLC5615的輸入數(shù)值和輸出電壓的關系擬合,也就是說這時候的TLC5615的輸出電壓為一個標準值。通過調節(jié)TLC5615 的輸出(上面已經介紹了-0.3~5.3V可調),然后觀察LM2596-ADJ的輸出電壓的變化并記錄數(shù)值。記錄這一部分可以通過單片機寫一個步進值,通過延時改變步進值,讀取電壓表示數(shù)即可。
然后再通過數(shù)學工具擬合出TLC5615輸出電壓關于LM2596-ADJ輸出的函數(shù)關系式。
兩個公式綜合以下,就可以得到單片機輸入TLC5615的值與LM2596-ADJ的輸出關系式,99.999999999999999%是一個線性關系。
最后公式寫入代碼,便可以達到輸出可調的目的。
3.2輸出電壓檢測調試

和之前說的TLC5615一樣,通過單片直接讀取到的ADC的數(shù)值并不是非常準確的數(shù)值,有以下兩個原因,第一:前級電路采用了分壓連接的方式;第二:ADC模塊的本身問題。所以在這里也是需要有一個擬合的步驟。
連接好電路
直接輸出單片機讀取到的ADC數(shù)值,同時對LM2596-ADJ的輸出電壓進行記錄,ADC 的值與輸出電壓做函數(shù)關系擬合得到準確的函數(shù)關系。
公式寫入代碼便可實現(xiàn)輸出電壓檢測到目的。


四:總結
為了達到目標電壓的準確性很多的工作都會很枯燥,例如數(shù)據(jù)的記錄,數(shù)據(jù)的擬合等等,可能一個數(shù)據(jù)測試就會耗上大半天,耐住枯燥;
模塊的公式不是絕對的,一定要動手去擬合,不擬合一定出不來精準度高的電壓;
芯片購買一定選擇正版芯片!
本文所使用的ESP32可以替換為其他單片機,請勿局限,只是為了更好的對接物聯(lián)網(wǎng)。
在校準各類電壓時所用的萬用表建議使用高精準度萬用表,或者最終演示時的萬用表與校準萬用表保持一致。
特別注意,轉載請注明出處,禁止一切商用目的(包含售賣課程設計方案等),違者必究!?。?!交流Q:2691721905文章來源:http://www.zghlxwxcb.cn/news/detail-813221.html
在此再次感謝上面各位博主的理論提供?。?!文章來源地址http://www.zghlxwxcb.cn/news/detail-813221.html
到了這里,關于基于LM2596和ESP32的數(shù)控直流電源的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!