电池快速检测系统嵌入式论文资料_第1页
电池快速检测系统嵌入式论文资料_第2页
电池快速检测系统嵌入式论文资料_第3页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、嵌入式系统期末论文题目:智能电池快速检测系统1引言1.2系统模块设计1.2.1 电量指示电路 2.2.2报警电路3.2.3电池检测电路4.2.4复位电路和时钟电路 43程序设计.5.1引言铅酸蓄电池组是许多交通工具的动力源或应急电源, 因此电池组的性能将直接 关系到交通工具的正常运行。为了提高蓄电池的使用寿命,保证其可靠运行,需要经常对蓄电池参数进行严格测量,以确保蓄电池组处于最佳的工作状况。以往, 蓄电池参数的测量都是人工完成的。人工测量速度慢,测量精度不高,而且有害气体影响人体健康。为减少工人的劳动强度, 保障测量人员身体健康,提高测量 速度和测量精度,对蓄电池参数进行自动测量显得尤为重要

2、。电动车采用铅酸蓄电池是从生产难度、成本、可靠性等多方面考虑的结果。 铅酸蓄电池其基本特点是使用期间不用加酸加水维护,电池为密封结构,不会漏酸,也不会排酸雾,电池盖子上设有单向排气阀 (也叫安全阀),它作用是当电池 内部气体量超过一定值(通常用气压值表示),即当电池内部气压升高到一定值 时,排气阀自动打开,排出气体,然后自动关阀,防止空气进入电池内部。 阀控铅酸蓄电池与汽车等用的普通铅酸蓄电池相比有二个主要特点:一是密封; 二是干态。铅酸蓄电池在使用过程中,只是不断将化学能转换成电能,又将电能转换成 化学能,反复循环,对外部环境是 零排放” 不会对环境造成污染。2系统模块设计智能电池检测系统从

3、功能模块上看来包括电量指示电路,报警电路,电池检测电路,复位电路和时钟电路以及 STM32辅助部分等几部分组成。单片机STM32报警电路显示电路图1系统硬件框图开始电池检测Of电 量电量高100%于80%JI1电量高于60%电量高于40%LED显示电量低于20%蜂鸣器报警图2系统程序框图测取电池电量的方法有多种;1测取电池电压,铅酸电池会随着电量的减少降低电压其电压降低的曲线可近似看成直线,该方法测量设备简单对设备损害小,但误差较大。2测量电池内阻,随着电池电量的降低点吃的内阻同样会逐渐增加且电池内 阻与电池电量相关性比较大,所以该方法精度较高,但数据测取电路复杂,需要在电池两端施加交流信号在

4、检测电池两端信号变化情况计算电池内阻,该系统在实际运行过程中会受电池本身电路影响。3测量电池电液密度,电池电液密度是最接近电池电量的指标, 但电液密度 的测量太复杂,所以不采取。由于电车电池在放电过程一般电流较小, 电池电量的变化过程是一个缓慢的 过程不需要太高的精确度所以采用直接测量电池电压法测量电池电量。2.1电量指示电路电量指示电路如图3所示。电量指示电路由5个发光二极管组成他们的亮与灭分别代表了蓄电池的电量消耗程度。其中D1、D2、D3、D4、D5分别代表了蓄电池的剩余电量为100%、80%、60%、40%、20%。R?Res2300 R?Di2.2报警电路Res2妙1Res2 卿1R

5、es2Res2300图3电量指示电路PAOPAIPA2PA3PA4报警电路如图4所示。D1、D2、D3是3个发光2极管,和NPN三极管、 蜂鸣器组成报警电路。当电池电量低于一定量时,系统经过单片机STM32处理后,发送信号使蜂鸣器得电,蜂鸣器发出响声提示电动车欠压需要充电。VCC图4报警电路2.3电池检测电路电车电池大多为多块12V铅酸电池串联 本设计3块36V为测量目标。电池 的输出电压范围10.5*313.5*3 , STM32单片机模块输入电压为03.3v。测量总 电压是电池是测取点的分压比例为 15: 1,测量单块电池电压时 测取点的分压 比例为13:3;所以总电压电阻为150k和10

6、k串联, 单块为130k和30k电阻串 联。PC店£*巧眩f 严1S0K10KrECJk*»:TsokPCI一电©R?BattayPC:一电迪3Bat lay恥2130KR?Vm2130K?.T3CKPC5图5电池检测电路2.4复位电路和时钟电路Cl30pFC2T XTALGND30pF图6时钟控制电路uKNxxl-ZTWT图7复位电路3程序设计LED引脚配置PA0-PA7static void GPIOA_Co nfig(void)GPIOn itTypeDef GPIOn itStructure;RCC_APB2PeriphClockCmd(RCC_APB2P

7、eriph_GPIOA , ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1| GPIO_Pin_2| GPIO_Pin_3| GPIO_Pin_4|GPIO_Pin_5| GPIO_Pin_6| GPIO_Pin_7;GPIOnitStructure.GPIO_Mode = GPIO_Mode_OD_PP; /输出模式通用推 挽GPIOn itStructure.GPIO_Speed = GPIO_Speed_50MH z;GPIO_I ni t(GPIOA, & GPIOn itStructure); GPI

8、OA->ODR|=OxOOFF ;/关闭 LED蜂鸣器2k pwm输出static void TIM_Mode_Co nfig(void)GPIOn itTypeDef GPIOn itStructure;TIM_TimeBasel ni tTypeDef TIM_TimeBaseStructure;TIM_OCI nitTypeDef TIM_OCI ni tStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

9、GPIOni tStructure.GPIO_Pin = GPIO_P in_0;GPIOnitStructure.GPIO_Mode = GPIO_Mode_AF_PP;模式复用推挽GPIOni tStructure.GPIO_Speed = GPIO_Speed_50MH z;GPI Oni t(GPIOB, & GPIO _lni tStructure);TIM_TimeBaseStructure.TIM_Period=999;/ 周期为 1000TIM_TimeBaseStructure.TIM_Prescaler = 35;36 分频TIM_TimeBaseStructure

10、.TIM_ClockDivisio n= TIM_CKD_DIV1 ; TIM_TimeBaseStructure.TIM_Cou nterMode = TIM_Cou nterMode_Up; TIM_TimeBaseI nit(TIM3, & TIM_TimeBaseStructure);TIM_OCI nitStructure.TIM_OCMode = TIM_OCMode_PWM1;TIM_OCI nitStructure.TIM_OutputState = TIM_OutputState_E nable;TIM_OCI ni tStructure.TIM_Pulse = 49

11、9;TIM_OCI ni tStructure.TIM_OCPolarity=TIM_OCPolarity_High;TIM_OC1I nit(TIM3, & TIM_OCI ni tStructure);TIM_OC1PreloadCo nfig(TIM3, TIM_OCPreload_E nable);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, DISABLE);ADC1 配置static void ADC1_Mode_Co nfig(void)ADCn itTypeDef ADCn itStructure;GPIOn itTypeDef

12、 CPIOni tStructure;RCC_AHBPeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); RCC_AHBPeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);CPIOni tStructure.GPIO_Pi n=GPIO_Pin_O|GPIO_Pin_1|GPIO_Pin_2|GPI O_Pin_3;CPIOn itStructure.GPIO_Mode=GPIO_Mode_AIN;CPIOn itStructure.GPIO_Speed = GPIO_Speed_5OMH z;GPIOnit(GPIOC,

13、&CPIO_lnitStructure);ADCn itStructure .A DC_Mode=ADC_Mode_l ndepe nde nt;ADCni tStructure .A DC_Sca nCon vMode=DISABLE;ADCn itStructure .A DC_Co ntin uousC on vMode=DISABLE;ADCni tStructure .A DC_ExternalTrigCo nv=ADC_ExternalTrigCo nv_No ne;ADCn itStructure .A DC_DataAlig n=ADC_DataAlign_Right;

14、ADCni tStructure. ADC_NbrOfCha nn el=1;ADC _ln it(ADC1,&ADC _lni tStructure);RCC_ADCCLKCo nfig(RCC_PCLK2_Div8);ADC_RegularCha nn elCo nfig(ADC1,ADC_Cha nn el_1,1,ADC_SampleTim e_55Cycles5);ADC_Cmd(ADC1,ENABLE);ADC_ResetCalibratio n(ADC1);while(ADC_GetResetCalibrati on Status(ADC1);ADC_StartCalib

15、rati on (ADC1);while(ADC_GetCalibrati on Status(ADC1);获取对应通道数据static u16 GET_ADC_No_value(u16 No)u16 i=1;/No 的值为 10,11,12,13;ADC_RegularCha nn elCo nfig(ADC1,No,1,ADC_SampleTime_55Cycles5);ADC_SoftwareStartC on vCmd(ADC1, ENABLE);while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ); return ADC_GetCo nversi

16、o nV alue(ADCI);主函数int main(v oid)u16 power1,power2,power3,power;SystemI ni t();GPIOA_Co nfig();TIM_Mode_Co nfig();ADC1_Mode_Co nfig();while (1)power=GET_ADC_No_value(10);power 仁 GET_ADC_No_value(11);power2=GET_ADC_No_value(12); power3=GET_ADC_No_value(13);if(power1<(u16)(32/16*4096/3.3)|power>

17、;(u16)(44/16*4096/3.3)RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIOA->ODR&=0xFFDF; if(power2<(u16)(32/16*4096/3.3)|power>(u16)(44/16*4096/3.3) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIOA->ODR&=0xFFbF; if(power3<(u16)(32/16*4096/3.3)|power>(u16)(44/16*4096/3.3) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIOA->ODR&=0xFF7F;if(power>=(u16)(36/16*4096/3.3)GPIOA->ODR&=OxFFEO;else if(power>=(u16)(35.1/16*4096/3.3)GPIOA->ODR&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论