493【畢設課設】基於STM32鉛酸蓄電池內阻測試儀PGA113晶片
阿新 • • 發佈:2020-12-05
【資源下載】下載地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl
測量電池內阻時,通過微控制器IO口給一個PWM,控制恆流源以一定的頻率工作,電路相當於以一定的頻率改變負載值,會有一個很小幅度的方波(方波與輸出波形相位差180度,因為恆流源工作,mos管導通,相當於電路中多了一條電流支路,mos管管斷,只有一條電池電流流過的支路,不需要分電流,自然輸出為方波的最大值),通過放大器與後面的採集電路,通過換算可以得出方波的差值,再除以設定的電流值便可以得出電池的內阻值。
本方案採用可程式設計運放PGA113,結合高精度AD晶片,採集資料,完成電池內阻的實時高精度檢測。檔案包括原始碼、PCB、原理圖等詳細檔案。
#include "sys.h" #include "delay.h" #include "usart.h" #include "led.h" #include "oled.h" #include "adc.h" #include "pwm.h" #include "key.h" #include "beep.h" #include "PGA.h" int main(void) { float R; //表示內阻 u16 adcx,adcx1,adcx2,adcx3; u32 result; double temp,temp1,temp2,temp3; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設定系統中斷優先順序分組2 delay_init(21); //初始化延時函式 uart_init(115200); //初始化串列埠波特率為115200 LED_Init(); //初始化LED OLED_Init(); //初始化OLED Adc_Init(); //初始化ADC KEY_Init(); BEEP_Init(); OLED_ShowGBK(20,0,0,12,1); //肺 OLED_ShowGBK(34,0,1,12,1); //活 OLED_ShowGBK(48,0,2,12,1); //量 OLED_ShowGBK(62,0,3,12,1); //測 OLED_ShowGBK(76,0,4,12,1); //試 OLED_ShowGBK(90,0,5,12,1); //儀 OLED_ShowGBK(04,18,6,12,1); //及 OLED_ShowGBK(18,18,7,12,1); //格 OLED_ShowGBK(38,18,9,12,1); //男