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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

電壓測量模塊INA226和電流測量模塊ACS712介紹

嵌入式技術 ? 來源:嵌入式技術 ? 作者:嵌入式技術 ? 2022-05-28 18:46 ? 次閱讀

1.硬件平臺

CPUSTM32F103C8

屏幕:0.96寸OLED屏幕(SPI接口)

電壓測量模塊: INA226(IIC接口)

電流測量模塊:ACS712(ADC采集)

2.功能實現

1.可測量直流電壓0~36V,適用于低電壓電子電路中。
2.可測量直流電0~5A范圍內,目前采用的ACS712測量量程為5A,該模塊有多個量程,可測量到20A
3.實時功率監測
4.電池電量監測(采用電壓壓降方式計算)

3.硬件介紹

3.1 INA226模塊

NA226是具有I2C?或SMBUS兼容接口的電流分流器和功率監控器。該設備同時監視并聯電壓降和總線電源電壓。可編程的校準值,轉換時間和平均值與內部乘法器結合使用,可以直接讀取以安培為單位的電流和以瓦特為單位的功率。INA226感應共模總線電壓上的電流,該電壓可在0 V至36 V之間變化,與電源電壓無關。該器件采用2.7V至5.5V單電源供電,典型功耗為330 μA。該器件的額定工作溫度范圍為–40°C至125 xC2°C,并且在I 2 C兼容接口上具有多達16個可編程地址。

pYYBAGKQtz-AJN4QAAgYmaATThY425.png

根據實物和原理圖可看出IN和OUT 之間進接了一個0.002R電阻。在官方提供說明文檔介紹改模塊是可以測量直流電壓0~36V,可測量總線共模電流,測量電流范圍為-20A ~ 20A之間。測量精度為±1%。但在實際使用過程中發現僅能測量測量到電壓值。測量電壓時接線方式為:
INPUT接電源正極,GND接電源負極。
按照模塊使用說明提示在將模塊串聯接入電路(即OUPUT接入到負載),實際測量發現無法獲取到正常電流值,因此采用ACS712模塊通過ADC方式完成電流測量。

3.2 INA226模塊相關寄存器和設備地址

1.INA226一共有6個寄存器(0x0~0x5),關于各個寄存器詳細介紹這里則不展開介紹,可自行下載相關資料

在這里插入圖片描述

2.INA226模塊采用IIC通訊,根據原理圖可知地址A1 A0 ==00,再參考官方技術文檔可知模塊設備地址為:0x40

poYBAGKQt--AAb0EAAEEk6kNrNA803.png

從時序可以看出,第8位為讀寫使能位,則地址和讀寫為組合則為:讀0x81,寫0x80

poYBAGKQuB6Afh19AACfRty2tiM473.png

3.3 INA226模塊驅動

#include "sys.h"
#include "myiic.h"
#define 	CFG_REG	 		0x00		//
#define 	SV_REG 			0x01		//分流電壓
#define 	BV_REG 			0x02		//總線電壓
#define 	PWR_REG 		0x03		//電源功率
#define 	CUR_REG 		0x04		//電流
#define 	CAL_REG 		0x05		//校準,設定滿量程范圍以及電流和功率測數的 
#define 	ONFF_REG 		0x06		//屏蔽 使能 警報配置和轉換準備就緒
#define 	AL_REG 			0x07		//包含與所選警報功能相比較的限定值
#define 	INA226_GET_ADDR 0XFF		/
//初始化INA226
void INA226_Init(void)
{	

	IIC_Init();
	INA226_SendData(INA226_ADDR1,CFG_REG,0x8000);	//重新啟動
	
	INA226_SendData(INA226_ADDR1,CFG_REG,0x484f);	//設置轉換時間204us,求平均值次數128,采樣時間為204*128,設置模式為分流和總線連續模式
	INA226_SendData(INA226_ADDR1,CAL_REG,CAL);	//設置分辨率
	//INA226_SendData(INA226_ADDR1,CAL_REG,0x0012);//設置分流電壓轉電流轉換參數	
	INA226_Get_ID(INA226_ADDR1);					//獲取ina226的id
}
//設置寄存器指針
void INA226_SetRegPointer(u8 addr,u8 reg)
{
	IIC_Start();

	IIC_Send_Byte(addr);
	IIC_Wait_Ack();

	IIC_Send_Byte(reg);
	IIC_Wait_Ack();

	IIC_Stop();
}

//發送,寫入數據
void INA226_SendData(u8 addr,u8 reg,u16 data)
{
	u8 temp=0;
	IIC_Start();

	IIC_Send_Byte(addr);
	IIC_Wait_Ack();

	IIC_Send_Byte(reg);
	IIC_Wait_Ack();
	
	temp = (u8)(data>>8);
	IIC_Send_Byte(temp);
	IIC_Wait_Ack();

	temp = (u8)(data&0x00FF);
	IIC_Send_Byte(temp);
	IIC_Wait_Ack();
	
	IIC_Stop();
}

//讀取數據
u16 INA226_ReadData(u8 addr)
{
	u16 temp=0;
	IIC_Start();

	IIC_Send_Byte(addr+1);
	IIC_Wait_Ack();
	
	temp = IIC_Read_Byte(1);
	temp<<=8;	
	temp |= IIC_Read_Byte(0);
	
	IIC_Stop();
	return temp;
}
//1mA/bit
u16 INA226_GetShunt_Current(u8 addr)
{
	u16 temp=0;	
	INA226_SetRegPointer(addr,CUR_REG);
	temp = INA226_ReadData(addr);
	if(temp&0x8000)	temp = ~(temp - 1);	
	return temp;
}

//獲取id
void INA226_Get_ID(u8 addr)
{
	u32 temp=0;
	INA226_SetRegPointer(addr,INA226_GET_ADDR);
	temp = INA226_ReadData(addr);
	ina226_data.ina226_id = temp;
}

//獲取校準值
u16 INA226_GET_CAL_REG(u8 addr)
{	
	u32 temp=0;
	INA226_SetRegPointer(addr,CAL_REG);
	temp = INA226_ReadData(addr);
	return (u16)temp;
}

//1.25mV/bit
u16 INA226_GetVoltage(u8 addr)
{
	u32 temp = 0;
	INA226_SetRegPointer(addr,BV_REG);
	temp = INA226_ReadData(addr);
	return (u16)temp;	
}

//2.5uV/bit
u16 INA226_GetShuntVoltage(u8 addr)
{
	int16_t temp = 0;
	INA226_SetRegPointer(addr,SV_REG);
	temp = INA226_ReadData(addr);
	if(temp&0x8000)	temp = ~(temp - 1);	
	return (u16)temp;	
}

//獲取電壓
void GetVoltage(float *Voltage)//mV
{
	*Voltage = INA226_GetVoltage(INA226_ADDR1)*Voltage_LSB;
}

3.4 ACS712模塊
ACS712基于霍爾感應的原理設計,由一個精確的低偏移線性霍爾傳感器電路與位于接近IC表面的銅箔組成(如下圖所示),電流流過銅箔時,產生一個磁場, 霍爾元件根據磁場感應出一個線性的電壓信號,經過內部的放大、濾波、斬波與修正電路,輸出一個電壓信號,該信號從芯片的第七腳輸出,直接反應出流經銅箔電流的大小。ACS712根據尾綴的不一樣,量程分為三個規格:±5A、±20A、±30A 。輸入與輸出在量程范圍內為良好的線性關系,其系數Sensitivity分別為,185 mV/A、100 mV/A、66mV/A。因為斬波電路的原因,其輸出將加載于0.5Vcc上。ACS712的Vcc電源 一般建議采用5V。輸出與輸入的關系為Vout=0.5Vcc+IpSensitivity。一般輸出的電壓信號介于0.5V~4.5V之間。
典型的應用:電機領域,載荷檢測和管理,開關電源領域,和各種電子產品過電流故障保護。
器件特點

80KHZ帶寬

總輸出誤差為1.5%

采用小型貼片SOIC8封裝

1.2mΩ內部電阻

左側大電流引腳(PIN1-4)與右側低電壓引腳(PIN5-8)最小絕緣電壓為2100V

5V單電壓工作

該器件不可應用于汽車領域

pYYBAGKQuLWAb0t9AAPbblf7ddI496.png

ACS712模塊為霍爾傳感器,通過ADC采集電壓值,載根據電壓與電流的線性關系時序電流轉換,輸入電流與輸出電壓對應曲線及計算公式:
ACS712ELCTR-05B電流電壓對應關系如下圖,Ip=0A即沒有輸入電流的時候,對應輸出電壓為2.5V.精確度為185mV/A即為圖中斜線的斜率。取VCC=5V,計算公式為:
Vout = 2.5 + 0.185*Ip

pYYBAGKQuPeATVGLAACk2mC_4wo430.png

3.5 ACS712驅動

#include "adc.h"
/***************ADC規則通道初始化*************
**硬件接口:PB0 -- ADC1_CH8(模擬)
**
*注:ADC的工作頻頻率不能超過14MHZ
********************************************/
void ADC1_RegularChannel_Init(void)
{
	//1.開時鐘
	RCC->APB2ENR|=1<<9;//ADC1時鐘
	RCC->APB2ENR|=1<<3;//PB0時鐘
	RCC->APB2RSTR|=1<<9;//ADC復位時鐘
	RCC->APB2RSTR&=~(1<<9);//關復位
	/*2.GPIO配置*/
	GPIOB->CRL&=0xFFFFFFF0;//模式輸入方式
	/*3.ADC時鐘頻率配置*/
	RCC->CFGR&=~(0x3<<14);//清除原來配置
	RCC->CFGR|=0x2<<14;//ADC工作頻率72MHZ/6=12MZH
	/*4.配置ADC核心寄存器*/
//	ADC1->CR1&=~(0xF<<16);//獨立模式
	ADC1->CR2|=1<<23;//啟動溫度傳感器(測量CPU溫度)
	ADC1->CR2|=1<<20;//規則通道外部觸發轉換模式
	ADC1->CR2|=0x7<<17;//外部事件通過開關事件觸發
//	ADC1->CR2&=~(1<<11);//右對齊(地位對齊,高位補0)
	ADC1->SMPR1|=0x7<<18;//溫度傳感器采樣時間通道16
	ADC1->SMPR2|=0x7<<24;//通道8采用時間
	ADC1->SQR1&=~(0xF<<20);//規則通道轉換的通道數目為1個轉換
//	ADC1->CR2&=~(1<<1);//單次轉換模式
	ADC1->CR2|=1<<0;//開啟ADC
	ADC1->CR2|=1<<3;//初始化校準
	while(ADC1->CR2&1<<3);//等待初始化校準完成
	ADC1->CR2|=1<<2;//開始校準
	while(ADC1->CR2&1<<2){}//等待校準完成
}
/****************ADC1規則通道獲取數值***************/
u16 ADC1_GetRegularCHx(u8 chx)
{
	ADC1->SQR3&=~(0x1F<<0);//清除原來寄存器中的值
	ADC1->SQR3|=chx;//要轉的通道號
	ADC1->CR2|=1<<22;//開啟轉換規則通過
	while(!(ADC1->SR&1<<1)){}//等待轉換完成
	return ADC1->DR;
}
poYBAGKQv5SAFpfQABo0_b0yWJM975.png

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 電壓測量
    +關注

    關注

    1

    文章

    71

    瀏覽量

    16592
  • 電流測量
    +關注

    關注

    0

    文章

    107

    瀏覽量

    15131
  • INA226
    +關注

    關注

    0

    文章

    5

    瀏覽量

    8054
  • ACS712
    +關注

    關注

    0

    文章

    20

    瀏覽量

    12411
收藏 人收藏

    評論

    相關推薦

    請問INA226可以用于測量隔離電源的前級的電壓電流嗎?

    我們想使用INA226測量輸入的電壓電流。我們的電源輸入到隔離電源模塊,我們現在想要測隔離電源模塊
    發表于 08-06 06:21

    請問INA226是沒有辦法測量空載電流嗎?

    INA226使用INA226做微安級電流檢測,使用低端檢測,在接負載時測量正常,而在空載時(斷開負載,IN+懸空,IN-接GND)出現異常測量
    發表于 08-16 06:04

    INA226僅僅測量電壓,不測電流,可以刪掉shunt電阻嗎?

    INA226 僅僅測量電壓,不測電流,可以刪掉shunt電阻嗎?
    發表于 08-16 13:10

    請問INA226電流、功率測量范圍多少?

    我看了數據手冊,找不到INA226電流功率測量范圍。我的電壓最大31V,電流最大可能為100A,可以用這款芯片嗎
    發表于 08-27 08:31

    ACS712電流測量模塊,為什么一直輸出不變呢?

    ACS712電流測量模塊(淘寶買的),為什么一直輸出不變呢?我VCC接了5.0V,輸出一直是2.56V.串連了電流2-5A后,輸出一直不變.
    發表于 11-10 18:46

    怎么使用PRoC和ACS712進行交流電流測量

    你好,同事們,我試著用YouPro(EVALKIT)和ActhoSACS712測量交流電流,但我只能測量噪聲。我使用的ADC SAR塊與4.8VDC作為參考和非常快的采樣
    發表于 01-22 11:32

    ACS712測量電流的精度問題

    電流經過ACS712(20A)轉換成電壓傳送給AD轉換器,如果用ADC0809能測量的精度是多少,ADC0809的精度位20mv,那么電流
    發表于 04-26 18:55

    ACS712電壓值和測量電流什么關系

    ACS712電流傳感器的原理是什么?ACS712電流傳感器電壓值和測量
    發表于 10-08 07:37

    INA226模塊簡介

    1模塊簡介INA226是一款分流/功率監視器,具有I2C?或SMBUS兼容接口。 該器件監視分流壓降和總線電源電壓。 可編程校準值、轉換時間和取平均值功能與內部乘法器相結合,可實現電流
    發表于 12-10 07:17

    INA226模塊的相關資料推薦

    筆者最近有個項目需要測量電流參數,于是買來INA226模塊測試一下。文章目錄應用電路程序設計模塊測試應用電路首先測試的
    發表于 02-08 07:12

    如何使用ACS712進行電源/能量測量

    傳感器構建了這個中間插座: IMG_20180330_121804_780.jpg (注意:連接時此處為主電源,但 ACS712測量電流和傳感器電壓進行
    發表于 05-22 07:15

    ACS712電流模塊pdf資料下載

    ACS712電流模塊pdf
    發表于 03-14 11:19 ?184次下載

    INA226使用之程序與模塊測試

    筆者最近有個項目需要測量電流參數,于是買來INA226模塊測試一下。文章目錄應用電路程序設計模塊測試應用電路首先測試的
    發表于 12-04 18:51 ?149次下載
    <b class='flag-5'>INA226</b>使用之程序與<b class='flag-5'>模塊</b>測試

    ACS712電流傳感器的原理及應用說明

    詳細介紹新型線性電流傳感器ACS712的特點、工作原理、特性曲線及其典型應用電路,對ACS712與ADCO809的接口進行了分析和設計,設計了一種基于
    發表于 08-09 16:05 ?54次下載

    使用ACS712測量任何交流電流

    電子發燒友網站提供《使用ACS712測量任何交流電流.zip》資料免費下載
    發表于 06-25 15:46 ?27次下載
    使用<b class='flag-5'>ACS712</b><b class='flag-5'>測量</b>任何交流<b class='flag-5'>電流</b>
    主站蜘蛛池模板: 在线一本码道高清| 亚洲精品中文字幕一二三四区| 人与人特黄一级| 色偷偷男人| 亚洲 欧美 日韩 卡通 另类| 亚洲精品一区二区在线看片| 医生含着我的奶边摸边做| 2021国产精品国产精华| WWW婷婷AV久久久影片| 国产AV果冻传奇麻豆| 免费精品一区二区三区在线观看| 蜜芽资源高清在线观看| 99re这里只有精品国产| beeg日本老妇人| 国产精品www视频免费看| 国产亚洲精品久久久久久禁果TV | 开心久久激情| 欧美三级黄色大片| 我强进了老师身体在线观看 | Zoofilivideo人馿交| 国产精品69人妻无码久久久| 精品无码国产AV一区二区三区 | 欧美美女一区二区三区| 无码日韩人妻精品久久蜜桃入口 | 久久中文字幕人妻AV熟女| 青青草 久久久| 亚洲精品黄色| 99热国产这里只有精品免费| 国产精品熟女人妻| 六级黄色片| 无码国产成人午夜在线观看不卡| 一本道dvd久久综合高清免费| 99久久国产综合色| 国产精品嫩草免费视频| 麻豆XXXX乱女少妇精品-百度| 日本一在线中文字幕| 一本色道久久88加勒比—综合| G0GO人体大尺香蕉| 精品无码乱码AV| 日韩男明星| 最近免费中文字幕MV免费高清 |