电动车电池检测系统嵌入式论文_第1页
电动车电池检测系统嵌入式论文_第2页
电动车电池检测系统嵌入式论文_第3页
电动车电池检测系统嵌入式论文_第4页
电动车电池检测系统嵌入式论文_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

PAGE1嵌入式系统论文题目:电动车智能电池快速检测系统 目录1引言 12系统模块设计 12.1STM32基本外围电路设计 12.2电量指示电路 32.3电源电路设计 42.4报警电路 42.5电池检测电路 52.6LCD显示模块电路设计 52.7复位电路和时钟电路 63程序设计 71引言铅酸蓄电池用填满海绵状铅的铅板作负极,填满二氧化铅的铅板作正极,并用1.28%的稀硫酸作电解质。在充电时,电能转化为化学能,放电时化学能又转化为电能。电池在放电时,金属铅是负极,发生氧化反应,被氧化为硫酸铅;二氧化铅是正极,发生还原反应,被还原为硫酸铅。电池在用直流电充电时,两极分别生成铅和二氧化铅。移去电源后,它又恢复到放电前的状态,组成化学电池。铅蓄电池是能反复充电、放电的电池,叫做二次电池。它的电压是2V,通常把三个铅蓄电池串联起来使用,电压是6V。汽车上用的是6个[2]铅蓄电池串联成12V的电池组。铅蓄电池在使用一段时间后要补充蒸馏水,使电解质保持含有22~28%的稀硫酸。电动车采用铅酸蓄电池是从生产难度、成本、可靠性等多方面考虑的结果。铅酸蓄电池其基本特点是使用期间不用加酸加水维护,电池为密封结构,不会漏酸,也不会排酸雾,电池盖子上设有单向排气阀(也叫安全阀),它作用是当电池内部气体量超过一定值(通常用气压值表示),即当电池内部气压升高到一定值时,排气阀自动打开,排出气体,然后自动关阀,防止空气进入电池内部。阀控铅酸蓄电池与汽车等用的普通铅酸蓄电池相比有二个主要特点:一是密封;二是干态。密封是指基本无酸雾排出。一般情况下阀控铅酸蓄电池在运行(充放电)过程中是“零排放”,只有在充电后期蓄电池内的气体压力超过安全阀的开放压力时才为有少量的氢和氧混合气体排放,此时有过滤材料滤去了带出的少量酸雾。干态是指阀控铅酸蓄电池没有自由流动的电解液,可以任何方向放置,不怕颠簸、碰撞,即使外壳破裂也不会有酸漏出。铅酸蓄电池在使用过程中,只是不断将化学能转换成电能,又将电能转换成化学能,反复循环,对外部环境是“零排放”,不会对环境造成污染。2系统模块设计2.1STM32基本外围电路设计该设计采用意法半导体公司最新推出的基于ARMCortex™-M0的32位RISC内核微处理器STM32芯片,该芯片具有超低的成本、极低的功耗、丰富的片内外设和方便灵活的开发手段将成为众多微处理器系列中一颗耀眼的新星。如图1所示,为STM32微处理器的最小工作电路。如图所示,BOOT0引脚用于STM32F030R8T6微处理器启动模式的设置,当BOOT0接高电平时,启动方式为从内部FLASH启动。该控制系统使用8.0MHz的外部晶振作为系统时钟,STM32微处理器内部集成锁相环,通过软件设置锁相环倍频数为6,就可以得到系统的最高工作时钟72Mhz。图中的32.768MHz的外部晶振的作用是通过分频,为STM32微处理器内部集成的RTC实时时钟提供一个精确地1秒钟计时。图1STM32最小系统报警电路STM32ADC电池检测报警电路STM32ADC电池检测显示电路显示电路故障检测故障检测图2系统硬件框图电动车电池智能检测电路先判断此时电池的状态然后经过ADC转换电路传到STM32单片机内。输出电路有报警电路和显示电路。2.2电量指示电路电量指示电路如图3所示。电量指示电路由5个发光二极管组成他们的亮与灭分别代表了蓄电池的电量消耗程度。其中D1、D2、D3、D4、D5分别代表了蓄电池的剩余电量为100%、80%、60%、40%、20%。图3电量指示电路2.3电源电路设计图4电源电路该系统直接采用电动车的电瓶作为电源,因为电动车电瓶的电压均高于系统的工作电压(5V),所以我们通过利用稳压芯片L7805CV 使得到稳定的5V直流电压,用以为该系统提供工作电压。图中的C10/C11两个电容用作滤波功能,以使得到稳定的5V直流电压。2.4报警电路报警电路如图5所示。D1、D2、D3是3个发光2极管,和NPN三极管、蜂鸣器组成报警电路。当电池电量低于一定量时,系统经过单片机处理后,发送信号使蜂鸣器得电,蜂鸣器发出响声提示电动车欠压需要充电。图5报警电路2.5电池检测电路电池检测电路如图6所示。他是由待测蓄电池组和电阻组成,其中pc0表示电池组串联后经过电阻的电压,pc1表示电池组1经过电阻的电压,pc2表示电池组2经过电阻的电压,pc3表示电池组3经过电阻的电压。后把这些电压信号输入单片机中进行处理。图6电池检测电路2.6LCD显示模块电路设计图7所示为LCD显示模块电路原理图设计。图7LCD显示模块电路原理图2.7复位电路和时钟电路图8复位电路图9时钟电路3程序设计LED引脚配置PA0-PA7staticvoidGPIOA_Config(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_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;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OD_PP; //输出模式通用推挽 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);GPIOA->ODR|=0x00FF;//关闭LED}蜂鸣器2kpwm输出staticvoidTIM_Mode_Config(void){GPIO_InitTypeDefGPIO_InitStructure;TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;TIM_OCInitTypeDefTIM_OCInitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; //模式复用推挽GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure); TIM_TimeBaseStructure.TIM_Period=999;//周期为1000TIM_TimeBaseStructure.TIM_Prescaler=35; //36分频TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse=499; TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;TIM_OC1Init(TIM3,&TIM_OCInitStructure); TIM_OC1PreloadConfig(TIM3,TIM_OCPreload_Enable);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,DISABLE);}ADC1配置staticvoidADC1_Mode_Config(void){ ADC_InitTypeDefADC_InitStructure; GPIO_InitTypeDefCPIO_InitStructure; RCC_AHBPeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); RCC_AHBPeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE); CPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3; CPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN; CPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOC,&CPIO_InitStructure); ADC_InitStructure.ADC_Mode=ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode=DISABLE; ADC_InitStructure.ADC_ContinuousConvMode=DISABLE; ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel=1; ADC_Init(ADC1,&ADC_InitStructure); RCC_ADCCLKConfig(RCC_PCLK2_Div8); //ADC_RegularChannelConfig(ADC1,ADC_Channel_1,1,ADC_SampleTime_55Cycles5); ADC_Cmd(ADC1,ENABLE); ADC_ResetCalibration(ADC1); while(ADC_GetResetCalibrationStatus(ADC1)); ADC_StartCalibration(ADC1); while(ADC_GetCalibrationStatus(ADC1));}获取对应通道数据staticu16GET_ADC_No_value(u16No){ u16i=1; //No的值为10,11,12,13; ADC_RegularChannelConfig(ADC1,No,1,ADC_SampleTime_55Cycles5);ADC_SoftwareStartConvCmd(ADC1,ENABLE); while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)); returnADC_GetConversionValue(ADC1);}主函数intmain(void){u16power1,power2,power3,power;SystemInit();GPIOA_Config();TIM_Mode_Config();ADC1_Mode_Config();while(1){ power=GET_ADC_No_value(10); power1=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>(u16)(44/16*4096/3.3)) {RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABL

温馨提示

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

评论

0/150

提交评论