当前位置: 首页 > news >正文

南昌企业制作网站哪有恶意点击软件买的

南昌企业制作网站,哪有恶意点击软件买的,哪个网站做的系统好,乐清企业网站建设文章目录 一、INA219简介二、引脚功能三、寄存器介绍1.配置寄存器 0x002.分流电压寄存器 0x013.总线电压寄存器 0x024.功率寄存器 0x035.电流寄存器 0x046.基准寄存器 0x05 四、IIC 时序说明1.写时序2.读时序 五、程序六、实验现象1.线路图2.输出数据 一、INA219简介 INA219是…

文章目录

  • 一、INA219简介
  • 二、引脚功能
  • 三、寄存器介绍
    • 1.配置寄存器 0x00
    • 2.分流电压寄存器 0x01
    • 3.总线电压寄存器 0x02
    • 4.功率寄存器 0x03
    • 5.电流寄存器 0x04
    • 6.基准寄存器 0x05
  • 四、IIC 时序说明
    • 1.写时序
    • 2.读时序
  • 五、程序
  • 六、实验现象
    • 1.线路图
    • 2.输出数据


一、INA219简介

INA219是一个电流分流和电源监视器与I2C或smbus兼容的接口。该设备监测分流电压降和总线电源电压,可编程转换时间和滤波。可编程的校准值与内部乘法器相结合,可直接读出以安培为单位的电流。一个附加的相乘寄存器计算功率,单位为瓦。I2C或smbus兼容接口具有16个可编程地址。

在这里插入图片描述

二、引脚功能

IN+连接到分流电阻的正级
IN-连接到分流电阻的负级
GND电源地
VS电源正
SCL时钟线
SDA数据线
A0IIC地址设置引脚
A1IIC地址设置引脚

INA219有两个地址引脚,A0和A1。下图描述了16个可能地址中的每一个的引脚逻辑。由原理图可知 INA219 模块 A0 A1 引脚被下拉至 GND ,故 IIC 地址则为 Write:1000 0000 0x80 Read:1000 0001 0x81
在这里插入图片描述

三、寄存器介绍

在这里插入图片描述

1.配置寄存器 0x00

用于配置传感器的量程及工作模式等等
在这里插入图片描述

Bit字段类型默认值(二进制)描述
15RSTR/W0设置成1 复位
14NCR/W0无功能 保留
13BRNGR/W1总线电压量程范围
0 = 16V FSR
1 = 32V FSR
11 12PGR/W11分流电阻最大电压,可设置最大量程电流,I=V/R
(模块分流电阻R=0.1欧,非芯片内部电路)
00 ±40 mV
01 ±80 mV
10 ±160 mV
11 ±320 mV
7:10BADCR/W0011总线ADC分辨率及采样次数
参考下文说明
3:6SADCR/W0011分流ADC分辨率及采样次数
参考下文说明
0:2MODER/W111操作模式
000 关闭
001 分流电压 触发
010 总线电压 触发
011 分流及总线电压 触发
100 关闭ADC
101 分流电压 连续测量
110 总线电压 连续测量
111 分流及总线电压 连续测量

BADC(7:10) SADC(3:6) 的配置都参考下图
在这里插入图片描述

2.分流电压寄存器 0x01

存放分流电压数据
在这里插入图片描述

在这里插入图片描述

3.总线电压寄存器 0x02

存放总线电压数据
在这里插入图片描述
总线电压值 = 寄存器值>>3 * LSB(4mV)
上图可知数据存放于寄存器的 3-15Bit ,故计算的话先右移三位去掉其余非数据位,再乘最小分辨率LSB(4mV)

4.功率寄存器 0x03

存放功率数据
在这里插入图片描述
功率 = 寄存器值 * Power_LSB ,Power_LSB 的计算参考第6小节说明

5.电流寄存器 0x04

存放电流数据
在这里插入图片描述

电流值 = 寄存器值 * Current_LSB ,Current_LSB 的计算参考第6小节说明

6.基准寄存器 0x05

设置传感器的基准值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
根据上面的公式计算Cal(基准值) 首先得计算 Current_LSB(电流最小分辨率),trunc 取整,Rshunt 分流电阻0.1R

Current_LSB_MAX = Maximum Expected Current(最大电流) / 2^15
Current_LSB_MIN = Maximum Expected Current(最大电流) / 2^12

最大电流 = 分流电阻最大电压(可通过00寄存器自行配置,本文采用320mV) / 分流电阻 = 320mV / 0.1R=3.2A

Current_LSB_MAX = 3.2A / 2^15 = 0.00009765625
Current_LSB_MIN = 3.2A / 2^12 = 0.00078125
取中间值适用值: Current_LSB = 0.0001A

因此 Cal(基准值) = 0.04096 / 0.0001A * 0.1R = 4096 = 0x1000 ,将该值写入寄存器 0x05 即可
测量结果如果出现偏差过大可用下图公式校准基准值
在这里插入图片描述
手册还给出了功率最小分辨率 Power_LSB 的计算公式
在这里插入图片描述

Power_LSB = 20 * 0.0001A = 0.002W

四、IIC 时序说明

1.写时序

在这里插入图片描述

2.读时序

在这里插入图片描述
该时序前还应加一个发送寄存器地址的时序:起始信号—IIC地址—ACK—寄存器地址—ACK

五、程序

INA219.c

#include <STC89C5xRC.H>
#include <IIC.H>
/*IIC 地址-------------------------------------------------------------------------------------------------------------*/
#define INA219 0x80
/*寄存器地址------------------------------------------------------------------------------------------------------------*/
#define	INA219_Configuration                          0x00
#define INA219_Shuntvoltage                           0x01
#define INA219_Busvoltage                             0x02
#define INA219_Power                                  0x03
#define INA219_Current                                0x04
#define INA219_Calibration                            0x05
/* INA219_curation Bit15-0 ------------------------------------------------------------------------------------------*/
#define RST 			0 		//设置成1复位 0(默认) (Bit15)
//                      0       //(Bit14 保留)
#define BRNG 			0   	//总线电压量程范围 16V (Bit13)
#define PG  			0x03	//分流电阻最大电压 ±320mV(默认) (Bit11-12)
#define BADC		    0x0C	//总线电压ADC分辨率/平均值设置  12位分辨率/16次平均值/8.51ms(Bit7–10)
#define SADC			0x0C    //分压电阻ADC分辨率/平均值设置  12位分辨率/16次平均值/8.51ms(bit3-6)
#define	MODE     	    0x07 	//运行模式  连续检测(默认)(Bit0–2)#define Configuration_H (RST << 7)|(BRNG << 5)|(PG << 3)|((BADC >> 1) & 0x0F)
#define Configuration_L ((BADC & 0x01) << 7)|(BADC << 3)|(MODE)
/* INA219_Calibration -------------------------------------------------------------------------------------------------*/
#define Calibration_H 0x10
#define Calibration_L 0x00
/*
0.32V/0.1R = 3.2A
Current_LSB_MAX = 3.2/2^12 = 0.00078125A
Current_LSB_MIN = 3.2/2^15 = 0.00009765625A
Current_LSB = 0.0001A = 0.1mA
Power_LSB = 20 * Current_LSB = 20 * 0.1mA = 2mW
CAL = 0.04096/(0.0001A*0.1R) = 4096 = 0x1000
*/
void INA219_Write(unsigned char Register,unsigned char Data_H,unsigned char Data_l)
{IIC_Start();IIC_SendByte(INA219);IIC_ReceiveAck();//没有对返回的 ACK 做处理IIC_SendByte(Register);IIC_ReceiveAck();IIC_SendByte(Data_H);IIC_ReceiveAck();IIC_SendByte(Data_l);IIC_ReceiveAck();IIC_Stop();
}
unsigned int INA219_Read(unsigned char Register)
{unsigned int Register_Data=0;IIC_Start();IIC_SendByte(INA219);IIC_ReceiveAck();//没有对返回的 ACK 做处理IIC_SendByte(Register);IIC_ReceiveAck();IIC_Start();IIC_SendByte(INA219+0x01);IIC_ReceiveAck();Register_Data = IIC_ReceiveByte();IIC_SendAck(0);Register_Data = (Register_Data<<8)|IIC_ReceiveByte();
//	IIC_SendAck(1);IIC_Stop();return Register_Data;
}
void INA219_Init()
{INA219_Write(INA219_Configuration,Configuration_H,Configuration_L);INA219_Write(INA219_Calibration,Calibration_H,Calibration_L);
}
unsigned int INA219_GetVoltage()//总线电压值 =  寄存器值>>3 * LSB(4mV)
{unsigned int Voltage;Voltage = (unsigned int)(((INA219_Read(INA219_Busvoltage)) >> 3) * 4);return Voltage;
}
unsigned int INA219_GetCurrent()//电流值 = 寄存器值 * Current_LSB(0.1mA)
{unsigned int Current;Current = (unsigned int)((INA219_Read(INA219_Current)) * 0.1);return Current;
}
unsigned int INA219_GetPower()//功率 = 寄存器值 * Power_LSB(2mW)
{unsigned int Power;Power = (unsigned int)((INA219_Read(INA219_Power)) * 2);return Power;
}

main.c

#include <STC89C5xRC.H>
#include <uart.H>
#include <INA219.H>
#include <delay.H>
//整形数据转字符数组
void IntToString(unsigned char *str,unsigned int dat)//str 存放字符的数组,dat 整形数据
{unsigned char i = 0;unsigned int buf[12];do { //先转换成 低位在前的十进制数组 将低位高位互换buf[i++] = dat % 10;dat /= 10;} while (dat > 0);while (i-- > 0) //将数组值转换为 ASCII 码反向拷贝到接收指针上{*str++ = buf[i] + '0';}*str = '\0';
}	
void main()
{unsigned int Voltage = 0,Current = 0,Power = 0;unsigned char arr[12];char * P = arr;uart_init();//波特率2400INA219_Init();Delay_x_ms(1000);while(1){Voltage = INA219_GetVoltage();Delay_x_ms(100);//获取总线电压Current = INA219_GetCurrent();Delay_x_ms(100);//获取电流Power = INA219_GetPower();//获取功率IntToString(P,Voltage);//int转char数组UART_Send(P);UART_Send("mV");UART_SendByte(0x0D);UART_SendByte(0x0A);IntToString(P,Current);UART_Send(P);UART_Send("mA");UART_SendByte(0x0D);UART_SendByte(0x0A);IntToString(P,Power);UART_Send(P);UART_Send("mW");UART_SendByte(0x0D);UART_SendByte(0x0A);Delay_x_ms(1000);}
}

六、实验现象

1.线路图

在这里插入图片描述

2.输出数据

5V 0.8A 测试
电源—负载仪
在这里插入图片描述
程序输出数据

在这里插入图片描述

5V 2A 测试
电源—负载仪
在这里插入图片描述
程序输出数据
在这里插入图片描述

7V 1A 测试
电源—负载仪
在这里插入图片描述
程序输出数据
在这里插入图片描述

以上内容个人理解,如有不正欢迎指教,需要资料及工程可留言邮箱

http://www.cadmedia.cn/news/12657.html

相关文章:

  • 淮北百度seo百度搜索优化
  • 网站开发文案模板免费seo刷排名
  • 网站建设电话销售工作总结十堰seo
  • 官网制作公司排名seo教育培训机构
  • 彩票网站开发制作平台软件谷歌外贸
  • 网站建设 微盘下载网址大全名称
  • 广州微信网站建设如何抖音搜索引擎优化
  • 手机网站建设多钱百度直播
  • wap版网站建设方案浏阳廖主任打人
  • 墨星写作网站百度排名优化
  • 做代还的人都聚集在哪些网站优化营商环境的金句
  • 南京建设交易中心网站济南网站优化排名
  • 重庆江北网站建设公司最基本的网站设计
  • 湘西北京网站建设百度热榜
  • 青岛城阳网站开发网络营销策划书步骤
  • 管理咨询营销的客户关系如何维护网站seo系统
  • 网站界面设计实训总结拼多多关键词排名查询软件
  • 教育部精品课程网站如何获取网站的seo
  • 网站建设制作小程序开发今日国际新闻大事件
  • 做企业官网需要做什么廊坊网络推广优化公司
  • 烟台企业网站建站模板seo新闻
  • 学校网站建设的意见百度app登录
  • 漳州网站建设公司首选全国新增确诊病例
  • 这么便宜?国内好的seo网站
  • 上杭网站定制2023半夜免费b站推广
  • 网站运营建设方案2345系统导航
  • wordpress5.0启多站点百度推广上班怎么样
  • 前端开发包括哪些内容嘉兴seo外包服务商
  • 网站建设需要客户提供什么内容百度竞价代运营托管
  • 企业门户网站需求模板福建百度推广