色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鉛酸電池電壓檢測及充電電流檢測電路圖講解 單片機(jī)模擬量的硬件和程序設(shè)計

jf_daLmOoRV ? 來源:頭條號電鹵藥丸 ? 2023-08-23 10:54 ? 次閱讀

單片機(jī)系統(tǒng)里對模擬量的處理要比數(shù)字量稍顯復(fù)雜,但是只要掌握了使用技巧,使用起來也很簡單,很多朋友一開始比較糾結(jié)于單片機(jī)的底層語言,非要先弄個明白才罷休,其實(shí)大可不必,重要的是我們要先學(xué)會怎么應(yīng)用。

現(xiàn)以鉛酸電池電壓檢測充電電流檢測為例講解模擬量的硬件和程序的設(shè)計。

如圖1為28節(jié)鉛酸電池的電壓檢測電路,1--14節(jié)組成電池組1,15--28節(jié)組成電池組2;第1節(jié)正極為BAT+,14與15節(jié)之間為BATM,第28節(jié)負(fù)極為BAT-。輸入端的8個二極管的作用是鉗位作用;電路計算如圖所示。

1a9fee2e-40d5-11ee-a2ef-92fbcf53809c.png

圖1:電池組電壓檢測電路

如圖2為鉛酸電池的充電電流檢測電路,TA1為工頻電流互感器,輸入的4個二極管為整流二極管,電流流過R37(510Ω)形成壓差△V。電路計算如圖所示。

1adf4ccc-40d5-11ee-a2ef-92fbcf53809c.png

圖2:電池組充電電流檢測電路

如圖3為單片機(jī)STM32F103CBT6,圖1和圖2的模擬信號輸入至單片機(jī)的PA5、PA6、PA7。

1b030dba-40d5-11ee-a2ef-92fbcf53809c.png

圖3:STM32F103CBT6單片機(jī)

由于代碼較多,為便于瀏覽,我就把其中一部分以截圖的形式展示

如圖4為單片機(jī)adc.c文件的底層配置,把PA5、PA6、PA7端口配置成模擬輸入模式

1b334aca-40d5-11ee-a2ef-92fbcf53809c.png

圖4:配置端口模式

如圖5對以上三個模擬量進(jìn)行模數(shù)轉(zhuǎn)換并緩存入數(shù)組ADC_ConvertedValue[3],得到的AD值的范圍是0~4096

1b473a12-40d5-11ee-a2ef-92fbcf53809c.png

圖5:模數(shù)轉(zhuǎn)換并緩存

如圖6把以上兩個配置函數(shù)整合在一起,定義成模擬量的初始化函數(shù)void ADC1_Init(void)。

1b5f83ba-40d5-11ee-a2ef-92fbcf53809c.png

圖6:初始化

如圖7在adc.h文件里聲明函數(shù)void ADC1_Init(void),另外幾個函數(shù)也在adc的c文件里定義的,后面附上源程序(非截圖)。

1b6e65ba-40d5-11ee-a2ef-92fbcf53809c.png

圖7:聲明函數(shù)

如圖8在main()主函數(shù)里調(diào)用ADC1_Init()初始化函數(shù)(要去掉void),初始化函數(shù)一定要放在while(1)的前面,表示在進(jìn)入while(1)無限循環(huán)前只執(zhí)行一次。Analog_Processing()為模擬量處理函數(shù),要放在while(1)無限循環(huán)里面(該函數(shù)在下面講)。

1b7f54e2-40d5-11ee-a2ef-92fbcf53809c.png

圖8,函數(shù)調(diào)用

以下為模擬量在main.c文件里的定義。

s16 Charging_Current; //充電電流實(shí)際值
s16 Battery1_Voltage; //電池組1電壓實(shí)際值
s16 Battery2_Voltage; //電池組2電壓實(shí)際值
s16 Battery_Voltage;  //電池組總電壓值

下面三個函數(shù)的定義都在adc.c文件里面定義的。

以下代碼為模擬量處理函數(shù):①對數(shù)組ADC_ConvertedValue[3]緩存值進(jìn)行濾波處理;②對濾波后的AD值轉(zhuǎn)換為實(shí)際值。

/******************************
模擬量處理函數(shù)
******************************/
void Analog_Processing(void)
{
//對AD值進(jìn)行濾波
ADC_Charging_Current=Filter(ADC_ConvertedValue[0],ADC_Charging_Current,1,10);
ADC_Battery1_Voltage=Filter(ADC_ConvertedValue[1],ADC_Battery1_Voltage,1,10);
ADC_Battery2_Voltage=Filter(ADC_ConvertedValue[2],ADC_Battery2_Voltage,1,10);
//AD值轉(zhuǎn)換為實(shí)際值
Charging_Current = Adc_To_Act(ADC_Charging_Current, 10, 4096, 0, 220);//22.0A
Battery1_Voltage = Adc_To_Act(ADC_Battery1_Voltage, 10, 4096, 0, 267);//267V
Battery2_Voltage = Adc_To_Act(ADC_Battery2_Voltage, 10, 4096, 0, 267);//267V
//兩組電壓相加得到總電壓
Battery_Voltage = Battery1_Voltage + Battery2_Voltage;
}

以下代碼為濾波函數(shù),濾波函數(shù)有很多,采用合適的才是最實(shí)用的(該函數(shù)濾波后的值是連續(xù)變化的,有些濾波函數(shù)濾波后的值是跳變的)。

/******************************
濾波函數(shù)(base/k越大,容性越大)
該函數(shù)相當(dāng)于是一個電容,通常取值k=1,base=10
******************************/
u16 Filter(u16 NewData, u16 OldData, u8 k, u8 base)
{
u16 uiResult;
if (NewData > OldData)
{
uiResult = NewData - OldData;
uiResult *= k;
uiResult += base >> 2;
uiResult /= base;
uiResult = OldData + uiResult; 
}
else if (OldData > NewData)
{
uiResult = OldData - NewData;
uiResult *= k;
uiResult += base >> 2;
uiResult /= base;
uiResult = OldData - uiResult; 
}
else
{
uiResult = NewData;
}

return(uiResult);
}

使用方法如下:NewData表示最新采用的模擬量;OldData表示濾波后的模擬量。

ADC_Battery1_Voltage=Filter(ADC_ConvertedValue[1],ADC_Battery1_Voltage,1,10);

為便于邏輯計算、控制及顯示,以下代碼是把AD值轉(zhuǎn)換為實(shí)際值,

/******************************
AD值轉(zhuǎn)換實(shí)際值函數(shù)
******************************/
s16 Adc_To_Act(s16 Adc_Value, s16 Pre_Adc_Min, s16 Pre_Adc_Max, s16 Pre_Act_Min, s16 Pre_Act_Max)
{
s32 _temp;
s32 _range;
_temp = (s32)((Adc_Value - Pre_Adc_Min) * (Pre_Act_Max - Pre_Act_Min) / (Pre_Adc_Max-Pre_Adc_Min)) + Pre_Act_Min;
_temp = Adc_Value - Pre_Adc_Min;
_range = Pre_Act_Max - Pre_Act_Min;
_temp = _temp * _range;
_range = Pre_Adc_Max - Pre_Adc_Min;
_temp = _temp + _range / 2;
_temp = _temp / _range;
_temp = _temp + Pre_Act_Min;
return(_temp);
}

使用方法如下:Adc_Value表示要轉(zhuǎn)換的模擬量;Pre_Adc_Min表示模擬量AD值的最小值;Pre_Adc_Max表示模擬量AD值的最大值;Pre_Act_Min表示轉(zhuǎn)換后實(shí)際值的最小值;Pre_Act_Max表示轉(zhuǎn)換后實(shí)際值的最大值;(以下最大實(shí)際值220表示22.0A,是因?yàn)?a target="_blank">數(shù)碼管顯示需要小數(shù)表示)。

Charging_Current = Adc_To_Act(ADC_Charging_Current, 10, 4096, 0, 220);//22.0A

要點(diǎn):

①模擬量的采樣電路,我多采用運(yùn)放的差分放大電路,原因是被測電壓可以和運(yùn)放不用共地,且可有效抑制共模噪聲,可達(dá)到較高的精確線性測量,比如以上電池組的被測電壓的誤差與實(shí)際相差在0.3V左右;

②電池組輸入至運(yùn)放的8個1M的電阻是兩個為一組的,且功率至少1/4W以上,因?yàn)樵?a target="_blank">高壓下的電阻容易老化,為保險起見,通常一個電阻的最大壓差在100V以下為宜;

③電池組分為兩組檢測,一是為了降低元件所承受的電壓,二是為了監(jiān)視兩組電池電壓之間是否平衡,達(dá)到保護(hù)電池目的。

③函數(shù)應(yīng)功能模塊化,且具備通用性質(zhì),便于移植和調(diào)用,對于很多朋友應(yīng)先學(xué)會如何使用,底層代碼只要會配置就完全足夠了。

當(dāng)然,以上提供的設(shè)計是我通常的做法,能滿足大多數(shù)的常規(guī)應(yīng)用。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 鉛酸電池
    +關(guān)注

    關(guān)注

    8

    文章

    272

    瀏覽量

    25725
  • 電路圖
    +關(guān)注

    關(guān)注

    10351

    文章

    10721

    瀏覽量

    531575
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6039

    文章

    44583

    瀏覽量

    636623
  • 檢測電路
    +關(guān)注

    關(guān)注

    13

    文章

    308

    瀏覽量

    58200
  • 模擬量
    +關(guān)注

    關(guān)注

    5

    文章

    492

    瀏覽量

    25580
  • 電壓檢測
    +關(guān)注

    關(guān)注

    5

    文章

    94

    瀏覽量

    27603

原文標(biāo)題:【單片機(jī)】實(shí)例講解單片機(jī)模擬量采集: 從硬件到程序, 從濾波到實(shí)際值轉(zhuǎn)換,有多少人懂了?

文章出處:【微信號:設(shè)備維修屋,微信公眾號:設(shè)備維修屋】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    實(shí)例講解單片機(jī)模擬量采集: 從硬件程序, 從濾波到實(shí)際值轉(zhuǎn)換,有多少人懂了?

    實(shí)例講解單片機(jī)模擬量采集: 從硬件程序, 從濾波到實(shí)際值轉(zhuǎn)換,有多少人懂了?
    的頭像 發(fā)表于 10-17 14:28 ?3929次閱讀
    實(shí)例<b class='flag-5'>講解</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>模擬量</b>采集: 從<b class='flag-5'>硬件</b>到<b class='flag-5'>程序</b>, 從濾波到實(shí)際值轉(zhuǎn)換,有多少人懂了?

    基于單片機(jī)控制的電池智能充電

    引起電池故障的主要原因    基于以上的原因,采用PID控制算法,設(shè)計基于單片機(jī)控制的智能充電器,它能夠?qū)崟r采集充電過程中的電流
    發(fā)表于 10-29 12:35

    智能型鉛酸電池充電器設(shè)計與實(shí)現(xiàn)

    的 atmega16 單片機(jī)作為核心控制芯片。總體結(jié)構(gòu)包括:電源模塊、充電電路模塊、模擬量檢測模塊、顯示及報警模塊和IGBT 驅(qū)動模塊。系
    發(fā)表于 11-26 16:45

    請問單片機(jī)怎么檢測充電電流

    RT。。。最近一個案子需要檢測電池充電電流,沒有思路,通過串電阻的方法進(jìn)行AD采集雖然可行,但影響充電效率。。請教下論壇里的高手們,用什么方法
    發(fā)表于 05-14 00:49

    怎樣去設(shè)計一種基于單片機(jī)太陽能鋰電池充電電壓電流檢測系統(tǒng)

    ACS712-5A+繼電器控制電路+電源電路設(shè)計而成。功能1、通過太陽能電池板給鋰電池充電,通過單片機(jī)
    發(fā)表于 11-19 06:06

    基于單片機(jī)的溫度檢測系統(tǒng)電路圖

    基于89C51單片機(jī)的溫度傳感器的溫度檢測系統(tǒng)電路圖
    發(fā)表于 03-14 09:32 ?60次下載

    基于單片機(jī)電池容量檢測與智能充電系統(tǒng)

    基于單片機(jī)電池容量檢測與智能充電系統(tǒng)基于單片機(jī)電池容量
    發(fā)表于 05-05 14:56 ?58次下載

    單片機(jī)電流檢測電路圖大全(四款模擬電路設(shè)計原理詳解)

    本文主要介紹了單片機(jī)電流檢測電路圖大全(四款模擬電路設(shè)計原理詳解)。它的主要功能是完成對過
    發(fā)表于 02-06 11:15 ?8.3w次閱讀
    <b class='flag-5'>單片機(jī)電流</b><b class='flag-5'>檢測</b><b class='flag-5'>電路圖</b>大全(四款<b class='flag-5'>模擬</b><b class='flag-5'>電路</b>設(shè)計原理<b class='flag-5'>圖</b>詳解)

    單片機(jī)C語言程序設(shè)計實(shí)訓(xùn)100例的程序電路圖合集

    本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)C語言程序設(shè)計實(shí)訓(xùn)100例的程序電路圖合集包括了:基礎(chǔ)程序設(shè)計, 從左到右的流水燈,8 只 LED 左右
    發(fā)表于 05-12 08:00 ?26次下載
    <b class='flag-5'>單片機(jī)</b>C語言<b class='flag-5'>程序設(shè)計</b>實(shí)訓(xùn)100例的<b class='flag-5'>程序</b>和<b class='flag-5'>電路圖</b>合集

    深度講解模擬量硬件程序的設(shè)計

    單片機(jī)系統(tǒng)里對模擬量的處理要比數(shù)字量稍顯復(fù)雜,但是只要掌握了使用技巧,使用起來也很簡單,很多朋友一開始比較糾結(jié)于單片機(jī)的底層語言,非要先弄個明白才罷休,其實(shí)大可不必,重要的是我們要先學(xué)會怎么應(yīng)用。
    的頭像 發(fā)表于 04-28 17:28 ?2799次閱讀
    深度<b class='flag-5'>講解</b><b class='flag-5'>模擬量</b>的<b class='flag-5'>硬件</b>和<b class='flag-5'>程序</b>的設(shè)計

    基于單片機(jī)太陽能鋰電池充電電壓電流檢測系統(tǒng)設(shè)計(畢業(yè)設(shè)計資料)

    ACS712-5A+繼電器控制電路+電源電路設(shè)計而成。功能1、通過太陽能電池板給鋰電池充電,通過單片機(jī)
    發(fā)表于 11-12 20:36 ?18次下載
    基于<b class='flag-5'>單片機(jī)</b>太陽能鋰<b class='flag-5'>電池</b><b class='flag-5'>充電</b><b class='flag-5'>電壓電流</b><b class='flag-5'>檢測</b>系統(tǒng)設(shè)計(畢業(yè)設(shè)計資料)

    基于51單片機(jī)模擬信號檢測系統(tǒng)

    一、系統(tǒng)基本功能本仿真主要基于51單片機(jī)模擬信號進(jìn)行檢測,使用電位計為模擬電壓信號進(jìn)作為模擬量
    發(fā)表于 11-20 20:21 ?14次下載
    基于51<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>模擬</b>信號<b class='flag-5'>檢測</b>系統(tǒng)

    單片機(jī)處理模擬量程序流程是如何的

    單片機(jī)處理模擬量程序流程是一種常見的應(yīng)用場景,單片機(jī)通常被用來處理各種類型的傳感器信號,例如溫度傳感器、壓力傳感器、光敏傳感器等。在本文中,我將詳盡地描述
    的頭像 發(fā)表于 12-15 09:28 ?1612次閱讀

    基于51單片機(jī)ADC0832雙路電壓0-5v檢測電路圖程序

    本資源內(nèi)容概要:? ? ? ?這是基于51單片機(jī)ADC0832雙路電壓0-5v檢測電路圖程序設(shè)計包含了
    發(fā)表于 06-18 10:13 ?3次下載

    基于51單片機(jī)SHT11溫濕度檢測proteus仿真及電路圖程序

    本資源內(nèi)容概要:? ? ? ?這是基于51單片機(jī)SHT11溫濕度檢測proteus仿真及電路圖程序設(shè)計包含了電路圖源文件(Altiumdes
    發(fā)表于 06-19 11:45 ?0次下載
    主站蜘蛛池模板: 老子午夜伦不卡电影院| 老熟人老女人国产老太| 北条麻妃のレズナンパ| 2012中文字幕在线动漫电影| 亚洲色图p| 亚洲AV久久无码精品九号 | 在线免费公开视频| 一二三四在线视频社区| 亚洲色欲啪啪久久WWW综合网| 亚洲欧美国产综合在线| 亚洲无碼网站观看| 伊人久久亚洲综合天堂| 尤物久久99国产综合精品| 再插深点嗯好大好爽| 2021国产精品| av在线观看网站免费| 成人 迅雷下载| 国产高清视频免费在线观看| 国产午夜精AV在线麻豆| 精品无人区麻豆乱码1区2 | 中文字幕 亚洲 有码 在线| 尤物国产在线精品三区| 最新国自产拍天天更新| 91chinesevideo| bl被教练啪到哭H玉势| 成人动漫百度影音| 国产精品久久久久久久久LI无码| 国产欧美无码亚洲| 國產日韓亞洲精品AV| 久久看片网| 欧美人与动牲交A精品| 日韩一区二区三区精品 | 一个人免费视频在线观看高清频道| 野花日本高清在线观看免费吗| 在线综合 亚洲 欧美| 99久久久无码国产精品不卡按摩 | 啪啪啪社区| 甜性涩爱bt下载| 亚洲中文字幕AV在天堂| 91热久久免费频精品99欧美| 成人免费观看国产高清|