基于STM32铅酸蓄电池内阻测试仪系统设计

文章目录


前言

💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗
👇🏻 精彩专栏 推荐订阅👇🏻
单片机设计精品实战案例
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

资料获取

文章底部名片,详细资料联系我。

设计介绍

基于STM32的铅酸蓄电池内阻测试仪系统设计是一个结合了现代微控制器技术和电子测量技术的综合性项目。该系统旨在实现对铅酸蓄电池内阻的精准、快速测量,从而为蓄电池的状态监测、健康评估及维护提供有力支持。以下是该系统设计的主要组成部分和工作流程介绍:

系统组成

STM32微控制器:

作为系统的核心控制单元,负责整体的数据采集、处理与通信功能。STM32微控制器具备高性能、低功耗的特点,能够确保系统的稳定运行和长时间工作。

功能介绍

测量电池内阻时,通过单片机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);	//男
  OLED_ShowNum(52,18,3500,4,12);
	OLED_ShowGBK(82,18,10,12,1);	//女
	OLED_ShowNum(98,18,2600,4,12);
	
	OLED_ShowGBK(16,40,14,12,1);	//女	
	OLED_ShowGBK(30,40,15,12,1);	//女
	OLED_ShowGBK(44,40,16,12,1);	//女
	OLED_ShowGBK(58,40,17,12,1);	//女
	OLED_ShowGBK(72,40,18,12,1);	//女
	OLED_ShowGBK(86,40,19,12,1);	//女
	OLED_ShowGBK(100,40,20,12,1);	//女

//	OLED_ShowString(0,20," Voltage:",12);
//	OLED_ShowString(0,33," Current:",12);
//	OLED_ShowString(0,46," Mode:",12);
//	OLED_ShowString(40,46,"N1       r0   ",12);
//	OLED_ShowString(55,46,"<<",12);
//	OLED_ShowString(92,18,".",16);
//	OLED_ShowString(120,20,"V",12);
//	OLED_ShowString(96,32,"200m",12);
//	OLED_ShowString(120,32,"A",12);
	
	OLED_Refresh_Gram();//更新显示到OLED
//	
//	TIM14_PWM_Init(A1-1,A2-1);	//84M/84=1Mhz的计数频率,重装载值500,所以PWM频率为 1M/500=2Khz.
//	result=84000/A1/A2;     //10KHz
	while(1)
	{
		
		
		
//		//按键扫描,切换界面与调节功能
//		key=KEY_Scan(0);
//		if(key)
//		{
//			switch(key)
//			{
//				case WKUP_PRES:
//					flag++;
//					break;
//				case KEY0_PRES:
//				{
//					if(flag%2)
//						move++;
//					break;
//}
//				case KEY1_PRES:
//					N++;
//					break;
//				case KEY2_PRES:
//					N--;
//					break;
//			}
//			if(N>7) N=0;
//			else if(N<0) N=7;
//		}
//		
	
	}
		
		
}

具体实现截图






设计获取

文章下方名片联系我即可~

精彩专栏推荐订阅:在下方专栏👇🏻

毕业设计精品实战案例

收藏关注不迷路!!

🌟文末获取设计🌟

相关推荐
脑子不好真君40 分钟前
使用cmd命令窗口操作mongodb
数据库·mongodb
晨晨今天吃饭了吗1 小时前
SPI软件模拟读写W25Q64
stm32·单片机
OH五星上将1 小时前
OpenHarmony(鸿蒙南向开发)——标准系统方案之瑞芯微RK3566移植案例(上)
stm32·嵌入式硬件·harmonyos·openharmony·鸿蒙开发·系统移植
MGT_97962 小时前
STM32+ESP01连接到机智云
stm32·单片机·嵌入式硬件
MGT_97962 小时前
基于51单片机的物联网安防系统(Proteus+Python脚本+阿里云)
嵌入式硬件·物联网·51单片机
会编程的果子君2 小时前
51单片机-系列-数码管&&中断和定时器
单片机·嵌入式硬件·51单片机
小马爱打代码2 小时前
MongoDB的安装和使用
数据库·mongodb
小李飞刀李寻欢2 小时前
mongoDB 读取数据python版本实现
数据库·python·mongodb·数据
QQ19284999062 小时前
基于stm32的四旋翼无人机控制系统设计系统设计与实现
stm32·嵌入式硬件·无人机
To-sz352 小时前
mongodb 主从集群,分片集群
数据库·mysql·mongodb