日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

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

GReq_mcu168 ? 來(lái)源:今日頭條 ? 作者:電鹵藥丸 ? 2021-04-28 17:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

4e7efe86-a7ff-11eb-9728-12bb97331649.png

圖1:電池組電壓檢測(cè)電路

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

4f3fc878-a7ff-11eb-9728-12bb97331649.png

圖2:電池組充電電流檢測(cè)電路

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

4f6098e6-a7ff-11eb-9728-12bb97331649.png

圖3:STM32F103CBT6單片機(jī)

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

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

4f760262-a7ff-11eb-9728-12bb97331649.png

圖4:配置端口模式

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

4f86db78-a7ff-11eb-9728-12bb97331649.png

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

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

4fc06fc8-a7ff-11eb-9728-12bb97331649.png

圖6:初始化

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

4fd31f92-a7ff-11eb-9728-12bb97331649.png

圖7:聲明函數(shù)

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

4ffcf466-a7ff-11eb-9728-12bb97331649.png

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

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

s16 Charging_Current; //充電電流實(shí)際值

s16 Battery1_Voltage; //電池組1電壓實(shí)際值

s16 Battery2_Voltage; //電池組2電壓實(shí)際值

s16 Battery_Voltage; //電池組總電壓值

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

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

/******************************

模擬量處理函數(shù)

******************************/

void Analog_Processing(void)

{

//對(duì)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)于是一個(gè)電容,通常取值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);

為便于邏輯計(jì)算、控制及顯示,以下代碼是把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)放的差分放大電路,原因是被測(cè)電壓可以和運(yùn)放不用共地,且可有效抑制共模噪聲,可達(dá)到較高的精確線性測(cè)量,比如以上電池組的被測(cè)電壓的誤差與實(shí)際相差在0.3V左右;

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

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

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

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

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

    關(guān)注

    9

    文章

    285

    瀏覽量

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

    關(guān)注

    5

    文章

    565

    瀏覽量

    27866
  • 硬件
    +關(guān)注

    關(guān)注

    13

    文章

    3638

    瀏覽量

    69178

原文標(biāo)題:模擬量采集從硬件到程序,從濾波到實(shí)際值轉(zhuǎn)換,多少人懂了

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    探秘TPS08U高精度模擬量采集模塊:設(shè)計(jì)與應(yīng)用全解析

    探秘TPS08U高精度模擬量采集模塊:設(shè)計(jì)與應(yīng)用全解析 在電子工程師的日常工作中,高精度模擬量采集模塊是不可或缺的工具。今天,我們就來(lái)深入了解一下 TPS08U 高精度模擬量采集模塊,看看它在實(shí)際
    的頭像 發(fā)表于 04-28 15:45 ?73次閱讀

    LORA模擬量互傳模塊:寬電壓適配,多場(chǎng)景兼容通用

    LoRa模擬量互傳模塊,具備零布線、低成本、3–5km、免維護(hù)、靈活擴(kuò)容、抗干擾等特性,把兩根模擬信號(hào)線變成了一對(duì)無(wú)線“隔空傳電信號(hào)”的設(shè)備,讓你在不改動(dòng)PLC程序、不布新線的前提下,把模擬量
    的頭像 發(fā)表于 03-17 16:22 ?241次閱讀

    如何在EtherCAT從站上增加模擬量輸入AI變量

    要在EtherCAT從站增加模擬量輸入AI變量,首先需更新從站設(shè)備程序,定義新的AI變量并初始化。
    的頭像 發(fā)表于 03-11 16:30 ?249次閱讀
    如何在EtherCAT從站上增加<b class='flag-5'>模擬量</b>輸入AI變量

    西門子S7-1200和S7-1500 PLC系列模擬量傳感器怎么接線

    西門子S7-1200和S7-1500PLC系列模擬量傳感器怎么接線,現(xiàn)場(chǎng)看到的4線制,3線制,2線制模擬量傳感器接線。
    的頭像 發(fā)表于 03-06 13:57 ?933次閱讀
    西門子S7-1200和S7-1500 PLC系列<b class='flag-5'>模擬量</b>傳感器怎么接線

    模擬量光端機(jī)兩線制怎么接線?廣州郵科接線全攻略

    在工業(yè)自動(dòng)化、遠(yuǎn)程監(jiān)控和智能傳感系統(tǒng)中,模擬量光端機(jī)扮演著信號(hào)遠(yuǎn)距離、高抗干擾傳輸?shù)年P(guān)鍵角色。尤其當(dāng)現(xiàn)場(chǎng)使用的是兩線制壓力/溫度變送器(輸出4-20mA信號(hào))時(shí),如何正確接線成為工程實(shí)施中的核心問(wèn)題
    的頭像 發(fā)表于 02-09 09:36 ?286次閱讀
    <b class='flag-5'>模擬量</b>光端機(jī)兩線制怎么接線?廣州郵科接線全攻略

    工業(yè)人必看:一主一從WIFI模擬量雙向?qū)髂K選型攻略

    WIFI 模擬量雙向?qū)髂K是物聯(lián)網(wǎng)與工業(yè)自動(dòng)化領(lǐng)域中,專用于模擬量信號(hào)無(wú)線雙向傳輸?shù)闹悄?b class='flag-5'>硬件,也是銜接前端傳感器、后端執(zhí)行器與控制平臺(tái)的關(guān)鍵設(shè)備,能破解傳統(tǒng)有線傳輸布線難、維護(hù)成本高的痛點(diǎn)。 一
    的頭像 發(fā)表于 12-01 17:31 ?800次閱讀

    廣州郵科模擬量光端機(jī),到底是啥神器?一篇文章給你講明白!

    你是不是在工廠、電站或者監(jiān)控項(xiàng)目里,經(jīng)常聽(tīng)到“模擬量信號(hào)”這個(gè)詞?比如壓力、溫度、流量這些連續(xù)變化的數(shù)據(jù),要把它們傳得遠(yuǎn)、傳得穩(wěn),可真不是件簡(jiǎn)單事。老式的布線方式又麻煩又容易受干擾,頭都大了對(duì)吧
    的頭像 發(fā)表于 10-30 09:38 ?437次閱讀
    廣州郵科<b class='flag-5'>模擬量</b>光端機(jī),到底是啥神器?一篇文章給你講明白!

    抗干擾模擬量無(wú)線模塊,與PLC、DCS數(shù)據(jù)自組網(wǎng)

    一、概述 模擬量轉(zhuǎn)無(wú)線模塊 是一種用于將模擬量信號(hào)(如溫度、濕度、壓力、電流、電壓等)轉(zhuǎn)換為無(wú)線信號(hào)進(jìn)行傳輸?shù)脑O(shè)備。 二、 模擬量轉(zhuǎn)無(wú)線模塊的特點(diǎn) 1. 遠(yuǎn)距離傳輸: 無(wú)線傳輸距離可達(dá)50KM左右
    的頭像 發(fā)表于 10-29 10:12 ?463次閱讀
    抗干擾<b class='flag-5'>模擬量</b>無(wú)線模塊,與PLC、DCS數(shù)據(jù)自組網(wǎng)

    提升性價(jià)比之選:CAN接口模擬量采集模塊的三大核心功能價(jià)值

    在工業(yè)物聯(lián)網(wǎng)(IIoT)、智能控制與自動(dòng)化系統(tǒng)中,存在大量 “連續(xù)變化” 的物理信號(hào),比如溫度的升降、壓力的波動(dòng)、電流的強(qiáng)弱,這些信號(hào)被稱為 “模擬量”。而CAN 接口模擬量采集模塊,正是一種專門
    的頭像 發(fā)表于 10-11 15:30 ?530次閱讀

    CAN接口模擬量采集模塊能做什么?工業(yè)/汽車/能源等四大領(lǐng)域?qū)嵗鸾?/a>

    CAN 接口模擬量采集模塊憑借高精度采集、抗干擾傳輸、工業(yè)級(jí)穩(wěn)定的核心優(yōu)勢(shì),已從傳統(tǒng)工業(yè)場(chǎng)景滲透到汽車、能源、農(nóng)業(yè)、醫(yī)療等多個(gè)領(lǐng)域。其本質(zhì)是通過(guò)模擬量信號(hào)捕獲 - 數(shù)字量轉(zhuǎn)換 - CAN 總線傳輸
    的頭像 發(fā)表于 10-11 15:29 ?867次閱讀

    集中式ZDM-E0800V模擬量采集模塊(上) — 基礎(chǔ)應(yīng)用

    在工業(yè)自動(dòng)化中,模擬量信號(hào)極為關(guān)鍵。致遠(yuǎn)電子的E系列高速IO模塊ZDM-E0800V支持EtherCAT協(xié)議,可采集工業(yè)現(xiàn)場(chǎng)的電壓模擬量信號(hào)。本文將詳細(xì)介紹其功能與使用方法,展示其如何實(shí)現(xiàn)電壓的精確
    的頭像 發(fā)表于 10-09 11:32 ?687次閱讀
    集中式ZDM-E0800V<b class='flag-5'>模擬量</b>采集模塊(上) — 基礎(chǔ)應(yīng)用

    4G模擬量雙向?qū)髂K:同步遠(yuǎn)傳,遠(yuǎn)程無(wú)線遙控開(kāi)關(guān)

    4G模擬量雙向?qū)髂K是一種基于4G網(wǎng)絡(luò)實(shí)現(xiàn)模擬量信號(hào)遠(yuǎn)程雙向傳輸?shù)墓I(yè)物聯(lián)網(wǎng)設(shè)備。主要用于解決工業(yè)現(xiàn)場(chǎng)中傳感器、執(zhí)行器等設(shè)備的數(shù)據(jù)采集和遠(yuǎn)程控制問(wèn)題,尤其適用于距離遠(yuǎn)、布線困難的場(chǎng)景。 核心
    的頭像 發(fā)表于 07-23 17:04 ?752次閱讀

    4G模擬量傳輸終端實(shí)現(xiàn)車間環(huán)境實(shí)時(shí)監(jiān)控

    。對(duì)此,物通博聯(lián)提供基于4G模擬量傳輸終端的高性價(jià)比車間環(huán)境監(jiān)測(cè)方案。 4G模擬量擁有豐富的接口,能夠輕松連接各類模擬量傳感器,如溫濕度傳感器、壓力傳感器、氣體濃度傳感器等,精準(zhǔn)采集車間環(huán)境中的各種
    的頭像 發(fā)表于 07-14 10:30 ?822次閱讀
    4G<b class='flag-5'>模擬量</b>傳輸終端實(shí)現(xiàn)車間環(huán)境實(shí)時(shí)監(jiān)控

    4G模擬量雙向?qū)髂K:不限距離傳輸,實(shí)時(shí)同步

    在工業(yè)現(xiàn)場(chǎng)控制、環(huán)境監(jiān)測(cè)、能源管理等場(chǎng)景中,模擬量信號(hào)(如4-20mA電流、0-10V電壓)仍是傳感器與執(zhí)行器的主流語(yǔ)言。然而傳統(tǒng)傳輸方案面臨兩大桎梏:①距離限制:有線傳輸成本高,RS485最長(zhǎng)僅
    的頭像 發(fā)表于 06-25 15:43 ?920次閱讀

    模擬量雙向?qū)髂K,局域網(wǎng)通訊,應(yīng)用廣泛

    局域網(wǎng)模擬量雙向?qū)髂K是一種用于在局域網(wǎng)(如以太網(wǎng)、Wi-Fi、CAN總線等)上實(shí)現(xiàn)模擬量信號(hào)(如電壓、電流、溫度、壓力等)雙向、實(shí)時(shí)、遠(yuǎn)距離傳輸?shù)膶S迷O(shè)備或模塊。主要價(jià)值在于替代傳統(tǒng)長(zhǎng)距離
    的頭像 發(fā)表于 06-20 16:04 ?840次閱讀
    吉首市| 隆回县| 衡水市| 衡阳市| 察雅县| 安龙县| 龙川县| 奉化市| 乌拉特中旗| 齐河县| 英吉沙县| 乐陵市| 湟中县| 凌海市| 元谋县| 宁阳县| 吉木乃县| 西林县| 即墨市| 泸水县| 泽库县| 邯郸市| 五华县| 马龙县| 开江县| 安徽省| 绥化市| 大同县| 房产| 内黄县| 南城县| 通辽市| 陆良县| 周口市| 孟州市| 探索| 如皋市| 宁强县| 武夷山市| 柯坪县| 邹城市|