在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

CW32數(shù)字電壓電流表軟件教程-實驗五:ADC采樣及顯示

CW32生態(tài)社區(qū) ? 來源:CW32生態(tài)社區(qū) ? 作者:CW32生態(tài)社區(qū) ? 2024-05-31 15:28 ? 次閱讀

6.1. ADC基礎(chǔ)知識

6.1.1.什么是ADC

模擬數(shù)字轉(zhuǎn)換器即A/D轉(zhuǎn)換器,或簡稱ADC,通常是指一個將模擬信號轉(zhuǎn)變?yōu)?a target="_blank">數(shù)字信號的電子元件。通常的模數(shù)轉(zhuǎn)換器是將一個輸入電壓信號轉(zhuǎn)換為一個輸出的數(shù)字信號。由于數(shù)字信號本身不具有實際意義,僅僅表示一個相對大小。故任何一個模數(shù)轉(zhuǎn)換器都需要一個參考模擬量作為轉(zhuǎn)換的標(biāo)準(zhǔn),比較常見的參考標(biāo)準(zhǔn)為最大的可轉(zhuǎn)換信號大小。而輸出的數(shù)字量則表示輸入信號相對于參考信號的大小。

6.1.2. CW32的ADC介紹

CW32F003 內(nèi)部集成一個 12 位精度、最高 1M SPS 轉(zhuǎn)換速度的逐次逼近型模數(shù)轉(zhuǎn)換器 (SAR ADC),最多可將 16 路模擬信號轉(zhuǎn)換為數(shù)字信號。現(xiàn)實世界中的絕大多數(shù)信號都是模擬量,如光、電、聲、圖像信號等,都要由 ADC 轉(zhuǎn)換成數(shù)字信號,才能由 MCU 進(jìn)行數(shù)字化處理。

主要特性

  • 12 位精度
  • 編程轉(zhuǎn)換速度,最高達(dá) 1M SPS
  • 16 路輸入轉(zhuǎn)換通道
  • 13 路外部引腳輸入- 內(nèi)置溫度傳感器- 內(nèi)置 BGR 1.2V 基準(zhǔn)- 1/3 VDD 電源電壓
  • 4 路參考電壓源(Vref)
  • VDD 電源電壓- ExRef(PB04)引腳電壓- 內(nèi)置 1.5V 參考電壓- 內(nèi)置 2.5V 參考電壓
  • 采樣電壓輸入范圍:0 ~ Vref
  • 多種轉(zhuǎn)換模式,全部支持轉(zhuǎn)換累加功能
  • 單次轉(zhuǎn)換- 多次轉(zhuǎn)換
  • 連續(xù)轉(zhuǎn)換
  • 序列掃描轉(zhuǎn)換
  • 序列斷續(xù)轉(zhuǎn)換
  • 支持單通道、序列通道兩種通道選擇,最大同時支持 4 個序列
  • 支持輸入通道電壓閾值監(jiān)測
  • 內(nèi)置信號跟隨器,可轉(zhuǎn)換高阻抗輸入信號
  • 支持片內(nèi)外設(shè)自動觸發(fā) ADC 轉(zhuǎn)換

6.1.3. ADC基本參數(shù)

分辨率:表示ADC轉(zhuǎn)換器的輸出精度,通常以位數(shù)(bit)表示,比如8位、10位、12位等,位數(shù)越高,精度越高。

采樣率:表示ADC對模擬輸入信號進(jìn)行采樣的速率,通常以每秒采樣次數(shù)(samples per second,SPS)表示,也稱為轉(zhuǎn)換速率,表示ADC能夠進(jìn)行多少次模擬到數(shù)字的轉(zhuǎn)換。

采樣范圍:指ADC可以采集到的模擬輸入信號的電壓范圍,范圍見下:

0 ≤ ADC ≤ Vref

Vref 為參考電壓,CW32F003有四路電壓參考源見上文。

6.1.4. 基本原理

CW32F003采用的是逐次逼近型的12位ADC,逐次逼近型ADC是一種常見的ADC工作原理,它的思想是通過比較模擬信號與參考電壓之間的大小關(guān)系來逐步逼近輸入信號的數(shù)字表示。在逐次逼近型ADC中,輸入信號和參考電壓被加入一個差分放大器中,產(chǎn)生一個差分電壓。然后,這個差分電壓被輸入到一個逐步逼近的數(shù)字量化器中,該量化器以逐步遞減的方式將其與一系列參考電壓進(jìn)行比較。具體來說,在每個逼近階段,量化器將輸入信號與一個中間電壓點進(jìn)行比較,將該電壓點上方或下方的參考電壓作為下一個逼近階段的參考電壓。這個過程一直持續(xù)到量化器逼近到最終的數(shù)字輸出值為止。

我們數(shù)字電壓電流表的采樣電路原理圖如下圖所示,

圖6-1 電壓采樣電路原理圖

如果使用1.5V作為參考電壓,根據(jù)R8和R7的阻值配比可以得到最高采樣電壓為:

1.5 / 10 * (220 + 10)= 34.5V

電流采樣的電路原理圖見圖6-2,對電流采樣本質(zhì)上是對檢流電阻的電壓進(jìn)行采樣。

圖6-2 電流采樣原理圖

6.2. ADC優(yōu)點

1.數(shù)字信號具有良好的抗干擾性。數(shù)字信號是由一系列離散的數(shù)字表示,因此可以抵抗模擬信號受到的各種干擾,如噪聲、漂移等。

2.方便數(shù)字信號的存儲、處理和傳輸。由于數(shù)字信號是離散的,因此它們可以輕松存儲在計算機(jī)內(nèi)存或其他數(shù)字設(shè)備中,方便進(jìn)行處理和傳輸。

3.具有可編程性。現(xiàn)代的ADC出現(xiàn)了很多可編程的功能,例如可編程增益、采樣率和濾波器等,可以根據(jù)不同的應(yīng)用場景進(jìn)行優(yōu)化。

4.適用性廣泛。ADC被廣泛應(yīng)用于工業(yè)、通信、醫(yī)療、電子測量、音頻視頻等領(lǐng)域,可轉(zhuǎn)換各種不同類型的模擬信號,包括電壓、電流、聲音、光信號等。

6.3. ADC應(yīng)用

ADC的應(yīng)用非常廣泛。例如,我們可以用ADC將傳感器的模擬信號轉(zhuǎn)換為數(shù)字信號,然后通過計算機(jī)進(jìn)行處理和分析;ADC在音頻處理中也起著重要的作用,將模擬聲音信號轉(zhuǎn)換為數(shù)字信號,并接下來進(jìn)行數(shù)字信號處理;無線電通信中的信號調(diào)制也需要使用ADC等。總的來說,ADC在現(xiàn)代電子工程中非常重要,是數(shù)字信號處理和控制技術(shù)的關(guān)鍵部分。

6.4. ADC采樣顯示

在下面我們對CW32F003的ADC通道進(jìn)行配置,輸入5V電壓給電壓表,CW32將采樣得到的值輸入數(shù)碼管顯示,對ADC通道的配置代碼如下;

#include "ADC.h"

uint16_t Volt_Buffer;        //存放ADC采樣值

void ADC_init(void)
{
    ADC_InitTypeDef     ADC_InitStructure;         //ADC配置結(jié)構(gòu)體
    ADC_SerialChTypeDef ADC_SerialChStructure;     //ADC序列通道結(jié)構(gòu)體
    GPIO_InitTypeDef    GPIO_Init_Struct;

    __RCC_GPIOB_CLK_ENABLE(); //打開ADC對應(yīng)引腳時鐘   
    __RCC_ADC_CLK_ENABLE();   // 打開ADC時鐘

    GPIO_Init_Struct.IT   = GPIO_IT_NONE;
    GPIO_Init_Struct.Mode = GPIO_MODE_ANALOG;//將GPIO的模式配置成模擬功能
    GPIO_Init_Struct.Pins = GPIO_PIN_1;      // PB01是電壓采集引腳
    GPIO_Init(CW_GPIOB, &GPIO_Init_Struct);
    PB01_ANALOG_ENABLE();                    //使能模擬引腳

    ADC_StructInit(&ADC_InitStructure);      // ADC默認(rèn)值初始化
    ADC_InitStructure.ADC_ClkDiv = ADC_Clk_Div4; //ADC工作時鐘配置 PCLK/4 = 6/4 = 1.5Mhz

/*信號電壓較低時,可以降低參考電壓來提高分辨率。改變參考電壓后,同樣二進(jìn)制表示的電壓值就會不一樣,
  最大的二進(jìn)制(全1)表示的就是你的參考電壓,在計算實際電壓時,就需要將參考電壓考慮進(jìn)去。*/
    ADC_InitStructure.ADC_VrefSel    = ADC_Vref_BGR1p5;//參考電壓設(shè)置為1.5V
    //由于電壓信號為慢速信號,ADC采樣時間為十個ADC采樣周期以確保準(zhǔn)確 
    ADC_InitStructure.ADC_SampleTime = ADC_SampTime10Clk;
    //Sqr為序列配置寄存器,這里只用到了序列0的通道,所以配置成0表示只轉(zhuǎn)換Sqr0序列
    ADC_SerialChStructure.ADC_SqrEns     = ADC_SqrEns0;     
    ADC_SerialChStructure.ADC_Sqr0Chmux  = ADC_SqrCh9;//配置ADC序列,PB01是ADC的第9通道
    ADC_SerialChStructure.ADC_InitStruct = ADC_InitStructure; //ADC初始化

    ADC_SerialChContinuousModeCfg(&ADC_SerialChStructure);   //ADC序列連續(xù)轉(zhuǎn)換模式配置
    ADC_ClearITPendingAll();           //清除ADC所有中斷狀態(tài)
    ADC_Enable();                      // ADC使能
    ADC_SoftwareStartConvCmd(ENABLE);  //ADC轉(zhuǎn)換軟件啟動命令
}

void Get_ADC_Value(void)               //取得ADC采樣的值傳給全局變量Volt_Buffer
{
    ADC_GetSqr0Result(&Volt_Buffer);
}

在主函數(shù)中初始化ADC后在BTIM1的中斷服務(wù)程序中調(diào)用 Get_ADC_Value 得到ADC采樣的值,再在主函數(shù)的 while 循環(huán)中調(diào)用數(shù)碼管顯示函數(shù) Display 將ADC采樣值顯示到數(shù)碼管上。下圖為數(shù)字電壓電流表接入5V電壓時的采樣顯示圖。可以看到接入5V時ADC采樣得到669,我們可以計算:

(669/4096)* [(1.5/10)*(200+10)] = 5.145 V

其中4096代表CW32的ADC采樣精度12位為2^12=4096,由于我們的測試樣品中220KΩ的電阻被替換成了200KΩ,所以計算公式如上,與萬用表測量數(shù)值相符。(各位學(xué)員最終收到的版本是220KΩ的電阻)

圖6-3 ADC采樣顯示

圖6-4 萬用表測量5V

6.5. ADC采樣計算

根據(jù)上文,ADC所采樣的值雖然準(zhǔn)確地顯示在數(shù)碼管上,但采樣值仍需要轉(zhuǎn)換成標(biāo)準(zhǔn)值。計算思路與上述公式類似,只是顯示到數(shù)碼管上需要將數(shù)值擴(kuò)大100倍。因此采樣計算的思路為:將采樣得到的值(比如在5V輸入的情況下ADC采樣得到668)用上述計算公式計算得到的結(jié)果后乘以100:

(668/4096)* [(1.5/10)*(200+10)] * 100 = 513.7 V

由于變量為整形,最終輸入給顯示函數(shù) Display 的值為513,在 Display 函數(shù)里對輸入的值進(jìn)行判定,如果輸入值大于1000,則數(shù)碼管只能顯示xx.x V,所以我們只取輸入值的千百十位;如果輸入值小于1000,比如現(xiàn)在輸入值為513,則數(shù)碼管可顯示x.xx V,分別將513的百十個位存入 Seg_Reg 數(shù)組中。

最終需要添加一個 Cal_Buffer 變量來存儲 Volt_Buffer 的值、一個電壓計算函數(shù),再修改 Display 函數(shù)見下文:

uint16_t Cal_Buffer;  //存儲 Volt_Buffer 的值

#define ADC_REF_VALUE (1500) //擴(kuò)大1000倍  1.5 * 1000 = 1500
#define R2            (200) //單位:KΩ
#define R1            (10)

void Volt_Cal(void)   //將ADC采樣值轉(zhuǎn)化為標(biāo)準(zhǔn)值
{
  Cal_Buffer = Volt_Buffer;   //存儲中斷服務(wù)程序中取得的ADC采樣值
  Cal_Buffer = (Cal_Buffer * ADC_REF_VALUE > > 12) * (R2 + R1)/R1;//計算得到的值為標(biāo)準(zhǔn)值的1000倍

    if(Cal_Buffer % 10 >= 5)     // 四舍五入
    {
        Cal_Buffer = Cal_Buffer / 10 + 1;  
    }
    else
    {
        Cal_Buffer = Cal_Buffer / 10;   //此時的值為標(biāo)準(zhǔn)值的100倍
    }
}

在while循環(huán)中調(diào)用數(shù)碼管顯示函數(shù)Display之前先調(diào)用Volt_Cal函數(shù)。

int main()
{
  RCC_Configuration();
  Seg_Init();
  Btim1_Init();
  ADC_init();

  while(1)
    {
      Volt_Cal();
      Display(Cal_Buffer); 
    }
}

Display函數(shù)的更新如下:

void Display(uint32_t value)
{
  uint8_t Thousands;   //千位
  uint8_t Hundreds;    //百位
  uint8_t Tens;        //十位
  uint8_t Units;       //個位

  Thousands = value / 1000;     //如果輸入值大于1000,只取輸入值的千百十位
  if(Thousands > 0)             //大于0則說明輸入值的千位有值
    {
       Units     = value % 10;
       value     = Units > 5 ? (value + 10) : value; // 根據(jù)后一位四舍五入
       Thousands = value / 1000 % 10;                //只取千百十位
       Hundreds  = value / 100 % 10;
       Tens      = value / 10 % 10;

       // 顯示xx.x伏
       Seg_Reg[0] = Thousands;
       Seg_Reg[1] = Hundreds + 10; // 加dp顯示
       Seg_Reg[2] = Tens;
    }

  else                            //如果輸入值的千位沒有值,則取百十個位
    {
        Units     = value % 10;
        Tens      = value / 10 % 10;
        Hundreds  = value / 100 % 10;

        // 顯示x.xx伏
        Seg_Reg[0] = Hundreds + 10; // 加dp顯示
        Seg_Reg[1] = Tens;
        Seg_Reg[2] = Units;
    }
}

最終顯示效果如下圖(輸入接5V):

圖6-5 采樣計算后顯示值

此時萬用表測得電壓如下:

圖6-6 萬用表測量值(5V)

審核編輯 黃宇

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

    關(guān)注

    8

    文章

    511

    瀏覽量

    52967
  • ADC
    ADC
    +關(guān)注

    關(guān)注

    0

    文章

    207

    瀏覽量

    16845
  • 電壓電流表
    +關(guān)注

    關(guān)注

    0

    文章

    25

    瀏覽量

    2171
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    242

    瀏覽量

    1116
收藏 人收藏

    評論

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

    淺談AppleWatch 電流表

    “ ?將你的 Apple Watch 變成電流表來測量直流電流。 ? ” 分享一個好玩的項目,將 Apple Watch 或任何帶有可觸及磁力計的手表變成電流表,以測量直流電流。項目是
    的頭像 發(fā)表于 04-25 18:17 ?220次閱讀
    淺談AppleWatch <b class='flag-5'>電流表</b>

    代碼+案例+生態(tài):武漢芯源半導(dǎo)體CW32嵌入式開發(fā)實戰(zhàn)正式出版

    尊敬的各位電子工程師、嵌入式開發(fā)愛好者們:大家好!今天,我們懷著無比激動與自豪的心情,向大家宣布一個重大喜訊——武漢芯源半導(dǎo)體的單片機(jī)CW32正式出書啦!《基于ARMCortex-M0+的CW32
    的頭像 發(fā)表于 03-03 15:15 ?574次閱讀
    代碼+案例+生態(tài):武漢芯源半導(dǎo)體<b class='flag-5'>CW32</b>嵌入式開發(fā)實戰(zhàn)正式出版

    代碼+案例+生態(tài):武漢芯源半導(dǎo)體CW32嵌入式開發(fā)實戰(zhàn)正式出版

    尊敬的各位電子工程師、嵌入式開發(fā)愛好者們: 大家好!今天,我們懷著無比激動與自豪的心情,向大家宣布一個重大喜訊——武漢芯源半導(dǎo)體的單片機(jī)CW32正式出書啦!《基于ARM Cortex-M0+
    發(fā)表于 03-03 15:14

    桿塔接地電阻輸電線路在線監(jiān)測裝置 電壓電流表

    電流表
    jf_96960730
    發(fā)布于 :2024年11月27日 14:08:55

    電流表與互感器怎么接線

    電流表與互感器的接法是一個在電氣工程中常見且重要的操作,它涉及到電流的測量、保護(hù)以及設(shè)備的正常運(yùn)行。以下將詳細(xì)闡述電流表與互感器的接法,包括基本原理、接線步驟、注意事項以及實際應(yīng)用中的不同場景。
    的頭像 發(fā)表于 09-09 16:53 ?2835次閱讀

    電流采樣電阻的電壓值是多少

    電流采樣電阻的電壓值并不是一個固定的數(shù)值,而是由通過該電阻的電流和電阻的阻值共同決定的。根據(jù)歐姆定律,電阻兩端的電壓V等于
    的頭像 發(fā)表于 08-27 10:07 ?1169次閱讀

    電流采樣電阻的采樣原理

    電流采樣電阻的采樣原理主要基于歐姆定律,即電阻上的電壓降與通過該電阻的電流成正比,其關(guān)系可以表示為V=I*R,其中V是電阻兩端的
    的頭像 發(fā)表于 08-27 10:03 ?2719次閱讀

    在線電流監(jiān)測電流表校驗儀操作說明——每日了解電力知識

    武漢摩恩MOEORW-7690電流表校驗儀,集計數(shù)校驗與電流校驗功能,支持電池與AC供電,全中文顯示,具備完善保護(hù)。可設(shè)置沖擊電壓與校驗電流
    的頭像 發(fā)表于 08-20 09:10 ?699次閱讀
    在線<b class='flag-5'>電流</b>監(jiān)測<b class='flag-5'>電流表</b>校驗儀操作說明——每日了解電力知識

    變頻器怎么外接電流表及轉(zhuǎn)速

    需要外接電流表和轉(zhuǎn)速來測量電機(jī)的電流和轉(zhuǎn)速。 電流表的作用 電流表是一種測量電路中電流大小的儀
    的頭像 發(fā)表于 07-19 11:17 ?4160次閱讀

    電流表內(nèi)部短路和被短路的區(qū)別

    電流表是一種測量電流的儀器,它在電路中起到非常重要的作用。然而,電流表在使用過程中可能會遇到一些問題,其中最常見的問題就是電流表內(nèi)部短路和被短路。這兩種問題雖然都是
    的頭像 發(fā)表于 07-15 14:51 ?7433次閱讀

    電流表電壓表無示數(shù)的原因

    引言 電流表電壓表是電氣工程中不可或缺的測量工具。它們能夠測量電路中的電流電壓,為電路設(shè)計、調(diào)試和維護(hù)提供重要數(shù)據(jù)。然而,在實際使用過程中,有時會出現(xiàn)
    的頭像 發(fā)表于 07-13 10:50 ?8915次閱讀

    鉗形電流表使用方法及注意事項

    鉗形電流表是一種常用的電氣測量工具,用于測量交流電流。它具有操作簡便、測量準(zhǔn)確、安全性高等特點,廣泛應(yīng)用于電力系統(tǒng)、工業(yè)生產(chǎn)、建筑安裝等領(lǐng)域。 一、鉗形電流表的工作原理 鉗形電流表的工
    的頭像 發(fā)表于 07-12 14:57 ?2843次閱讀

    變壓器充電器電流表怎么接

    變壓器充電器電流表接線方法如下: 首先,確保變壓器充電器和電流表都已關(guān)閉電源。 確定變壓器充電器的輸入和輸出端。通常,輸入端標(biāo)有“L”或“AC”,輸出端標(biāo)有“+”和“-”。 將電流表的兩個接線端分別
    的頭像 發(fā)表于 07-05 10:28 ?1906次閱讀

    武漢芯源半導(dǎo)體與長春理工大學(xué)“CW32嵌入式創(chuàng)新實驗室”揭牌

    2024年6月20日上午,在長春理工大學(xué)順利舉辦了“CW32嵌入式創(chuàng)新實驗室”揭牌儀式!武漢芯源半導(dǎo)體與長春理工大學(xué)電子信息工程學(xué)院的院系領(lǐng)導(dǎo)、師生代表齊聚一堂,共同見證了這一重要時刻,并著重探討了CW32大學(xué)計劃在長春理工大學(xué)
    的頭像 發(fā)表于 06-25 14:06 ?965次閱讀

    基于CW32F003E4P7的數(shù)字電壓電流表產(chǎn)品方案

    產(chǎn)品實物: 一、產(chǎn)品概述 數(shù)字電壓電流表,又稱為數(shù)顯電流電壓表,是以數(shù)字形式顯示,能夠同時檢測電流
    的頭像 發(fā)表于 06-25 11:55 ?1365次閱讀
    基于<b class='flag-5'>CW</b>32F003E4P7的<b class='flag-5'>數(shù)字</b><b class='flag-5'>電壓電流表</b>產(chǎn)品方案
    主站蜘蛛池模板: www.色天使| 日本三级2018亚洲视频 | 日韩一区二区三区免费 | 天天操天天射天天操 | 99久久香蕉国产综合影院 | 三级网站免费看 | 特级毛片s级全部免费 | 色天天天天综合男人的天堂 | 在线视频这里只有精品 | 奇米影视9999 | 国产免费午夜 | 欧美乱妇15p | aa视频免费 | 久久综合性 | 亚洲久久草| 久久久久国产成人精品亚洲午夜 | avbobo在线观看 | 二区久久国产乱子伦免费精品 | 亚洲一区二区三区播放在线 | 福利三区| 丁香婷婷久久 | 欧美一区二区三区综合色视频 | 免费视频www | 在线天堂资源 | 欧美猛操 | 一级视频在线观看 | 国产免费爽爽视频免费可以看 | 久久综合九九亚洲一区 | 成 人色 网 站 欧美大片在线观看 | 2021韩国理论片ok电影天堂 | 一区二区三区四区在线免费观看 | 天天爱夜夜爽 | 色综合天天综合网国产人 | 99久久久精品免费观看国产 | 黄色一级毛片看一级毛片 | 永久观看| 国产区亚洲区 | 狠狠色丁香久久综合婷婷 | 六月婷婷激情 | 亚洲一卡2卡3卡4卡5卡乱码 | 毛片网页 |