電動車電池檢測系統(tǒng)嵌入式論.docx
《電動車電池檢測系統(tǒng)嵌入式論.docx》由會員分享,可在線閱讀,更多相關《電動車電池檢測系統(tǒng)嵌入式論.docx(12頁珍藏版)》請在裝配圖網(wǎng)上搜索。
嵌入式系統(tǒng)論文 題目:電動車智能電池快速檢測系統(tǒng) 目 錄 1引言 1 2系統(tǒng)模塊設計 1 2.1STM32 基本外圍電路設計 1 2.2電量指示電路 3 2.3電源電路設計 4 2.4報警電路 4 2.5電池檢測電路 5 2.6LCD顯示模塊電路設計 5 2.7復位電路和時鐘電路 6 3程序設計 7 1引言 鉛酸蓄電池用填滿海綿狀鉛的鉛板作負極,填滿二氧化鉛的鉛板作正極,并用1.28%的稀硫酸作電解質(zhì)。在充電時,電能轉化為化學能,放電時化學能又轉化為電能。電池在放電時,金屬鉛是負極,發(fā)生氧化反應,被氧化為硫酸鉛;二氧化鉛是正極,發(fā)生還原反應,被還原為硫酸鉛。電池在用直流電充電時,兩極分別生成鉛和二氧化鉛。移去電源后,它又恢復到放電前的狀態(tài),組成化學電池。鉛蓄電池是能反復充電、放電的電池,叫做二次電池。它的電壓是2V,通常把三個鉛蓄電池串聯(lián)起來使用,電壓是6V。汽車上用的是6個[2]鉛蓄電池串聯(lián)成12V的電池組。鉛蓄電池在使用一段時間后要補充蒸餾水,使電解質(zhì)保持含有22~28%的稀硫酸。 電動車采用鉛酸蓄電池是從生產(chǎn)難度、成本、可靠性等多方面考慮的結果。 鉛酸蓄電池其基本特點是使用期間不用加酸加水維護,電池為密封結構,不會漏酸,也不會排酸霧,電池蓋子上設有單向排氣閥(也叫安全閥),它作用是當電池內(nèi)部氣體量超過一定值(通常用氣壓值表示),即當電池內(nèi)部氣壓升高到一定值時,排氣閥自動打開,排出氣體,然后自動關閥,防止空氣進入電池內(nèi)部。 閥控鉛酸蓄電池與汽車等用的普通鉛酸蓄電池相比有二個主要特點:一是密封;二是干態(tài)。 密封是指基本無酸霧排出。一般情況下閥控鉛酸蓄電池在運行(充放電)過程中是“零排放”,只有在充電后期蓄電池內(nèi)的氣體壓力超過安全閥的開放壓力時才為有少量的氫和氧混合氣體排放,此時有過濾材料濾去了帶出的少量酸霧。 干態(tài)是指閥控鉛酸蓄電池沒有自由流動的電解液,可以任何方向放置,不怕顛簸、碰撞,即使外殼破裂也不會有酸漏出。 鉛酸蓄電池在使用過程中,只是不斷將化學能轉換成電能,又將電能轉換成化學能,反復循環(huán),對外部環(huán)境是“零排放”, 不會對環(huán)境造成污染。 2系統(tǒng)模塊設計 2.1STM32 基本外圍電路設計 該設計采用意法半導體公司最新推出的基于ARM Cortex? -M0 的32 位RISC 內(nèi)核微處理器STM32芯片,該芯片具有超低的成本、極低的功耗、豐富的片內(nèi)外設和方便靈活的開發(fā)手段將成為眾多微處理器系列中一顆耀眼的新星。 如圖1所示,為STM32微處理器的最小工作電路。 如圖所示,BOOT0引腳用于STM32F030R8T6微處理器啟動模式的設置,當BOOT0接高電平時,啟動方式為從內(nèi)部FLASH 啟動。 該控制系統(tǒng)使用8.0MHz的外部晶振作為系統(tǒng)時鐘,STM32微處理器內(nèi)部集成鎖相環(huán),通過軟件設置鎖相環(huán)倍頻數(shù)為6,就可以得到系統(tǒng)的最高工作時鐘72Mhz。 圖中的32.768MHz的外部晶振的作用是通過分頻,為STM32微處理器內(nèi)部集成的RTC實時時鐘提供一個精確地1秒鐘計時。 圖1 STM32最小系統(tǒng) 報警電路 STM32 ADC 電池檢測 顯示電路 故障檢測 圖2系統(tǒng)硬件框圖 電動車電池智能檢測電路先判斷此時電池的狀態(tài)然后經(jīng)過ADC轉換電路傳到STM32單片機內(nèi)。輸出電路有報警電路和顯示電路。 2.2電量指示電路 電量指示電路如圖3所示。電量指示電路由5個發(fā)光二極管組成他們的亮與滅分別代表了蓄電池的電量消耗程度。其中D1、D2、D3、D4、D5分別代表了蓄電池的剩余電量為100%、80%、60%、40%、20%。 圖3 電量指示電路 2.3電源電路設計 圖4 電源電路 該系統(tǒng)直接采用電動車的電瓶作為電源,因為電動車電瓶的電壓均高于系統(tǒng)的工作電壓(5V),所以我們通過利用穩(wěn)壓芯片L7805CV 使得到穩(wěn)定的5V直流電壓,用以為該系統(tǒng)提供工作電壓。圖中的C10/C11兩個電容用作濾波功能,以使得到穩(wěn)定的5V直流電壓。 2.4報警電路 報警電路如圖5所示。D1、D2、D3是3個發(fā)光2極管,和NPN三極管、蜂鳴器組成報警電路。當電池電量低于一定量時,系統(tǒng)經(jīng)過單片機處理后,發(fā)送信號使蜂鳴器得電,蜂鳴器發(fā)出響聲提示電動車欠壓需要充電。 圖5報警電路 2.5電池檢測電路 電池檢測電路如圖6所示。他是由待測蓄電池組和電阻組成,其中pc0表示電池組串聯(lián)后經(jīng)過電阻的電壓,pc1表示電池組1經(jīng)過電阻的電壓,pc2表示電池組2經(jīng)過電阻的電壓,pc3表示電池組3經(jīng)過電阻的電壓。后把這些電壓信號輸入單片機中進行處理。 圖6電池檢測電路 2.6LCD顯示模塊電路設計 圖7所示為LCD顯示模塊電路原理圖設計。 圖7 LCD顯示模塊電路原理圖 2.7復位電路和時鐘電路 圖8復位電路 圖9時鐘電路 3程序設計 LED引腳配置 PA0-PA7 static void GPIOA_Config(void) { GPIO_InitTypeDef GPIO_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 } 蜂鳴器2k pwm輸出 static void TIM_Mode_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_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; //周期為1000 TIM_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配置 static void ADC1_Mode_Config(void) { ADC_InitTypeDef ADC_InitStructure; GPIO_InitTypeDef CPIO_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)); } 獲取對應通道數(shù)據(jù) static u16 GET_ADC_No_value(u16 No) { u16 i=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 )); return ADC_GetConversionValue(ADC1); } 主函數(shù) int main(void) { u16 power1,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, 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&=0xFFE0; else if(power>=(u16)(35.1/16*4096/3.3)) GPIOA->ODR&=0xFFE1; else if(power>=(u16)(34.2/16*4096/3.3)) GPIOA->ODR&=0xFFE3; else if(power>=(u16)(33.3/16*4096/3.3)) GPIOA->ODR&=0xFFE7; else if(power>=(u16)(32.4/16*4096/3.3)) GPIOA->ODR&=0xFFEF; else if(power<=(u16)(31.5/16*4096/3.3)) GPIOA->ODR&=0xFFFF; } }- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 電動車 電池 檢測 系統(tǒng) 嵌入式
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
鏈接地址:http://m.italysoccerbets.com/p-9261255.html