找回密码
 立即注册
查看: 651|回复: 9

关于5V霍尔 AI8H ADC采样的问题,急求!!!!

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-04-17 16:11:00

28

主题

48

回帖

261

积分

中级会员

积分
261
发表于 2024-10-12 21:03:17 | 显示全部楼层 |阅读模式
本帖最后由 DebugLab 于 2024-10-12 23:19 编辑

是这样的大神们,,我用啦一款5V的霍尔电流200A的传感器,用STC8H 12位的ADC采样 ,这个霍尔再0A的时候对应的是2.5V。我的基准电压是5V电压,我可以推出在没有电流情况下读取到霍尔的2.5V代表0A,霍尔4.5V是200A的量程,小弟太笨,不知道程序怎么去处理这个关系,只知道2.5V 对应2048的ADC的值,如何让2.5V的时候显示0A。在4.5V的时候显示200A,啊太头疼啦,跪求大神们指点,我数学太差劲啦!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:417
  • 最近打卡:2025-04-30 21:39:09
已绑定手机

34

主题

2096

回帖

2206

积分

荣誉版主

积分
2206
发表于 2024-10-12 23:06:23 | 显示全部楼层
本帖最后由 晓飛飛 于 2024-10-12 23:38 编辑

定义个有符号类型,ADC读取后减掉零位对应的ADC值就可以了。
比如
float I
int adc_int
adc_int = (ADC_RES << 8) | ADC_RESL
adc_int -= 0x0800
然后再进行后续比例计算。
我帮你算好了,输出电流I = adc_int * 0.12207

睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:417
  • 最近打卡:2025-04-30 21:39:09
已绑定手机

34

主题

2096

回帖

2206

积分

荣誉版主

积分
2206
发表于 2024-10-12 23:53:47 | 显示全部楼层
截图202410122353431617.jpg

点评

不应按照2047计算,应按照2048计算,因为相邻两个值永远是2048分之1  详情 回复 发表于 2024-10-13 01:02
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:424
  • 最近打卡:2025-05-02 14:37:11
已绑定手机

77

主题

4849

回帖

8382

积分

超级版主

DebugLab

积分
8382
发表于 2024-10-13 01:01:35 | 显示全部楼层
已知
甲:0000=0.0V=***A


乙:2048=2.5V=000A

丙:****=4.5V=200A
丁:4096=5.0V=***A


C语言程序,输入ADC值,输出电流


设ADC值为x,电流为y,该函数是二元一次方程
首先需要明确一些定律:
在笛卡尔坐标系中任何一个一次方程的图像都是直线
两点确定一条直线
直线的斜率△处处相等
先确定这两个点:
第一个点为最小值,取乙,为(2048,0A)
第二个点为最大值,取丁,x=4096,求y
使用乙、丙计算斜率,设电压为z,计算斜率△y/△z,该函数是一元一次方程
△y=200A-0A=200A

△z=4.5V-2.5V=2V

△y/△z=200A/2V
化简,得△y/△z=100A/V
计算丁的y
△y/△z=100A/V

(y-0)/(5.0V-2.5V)=100A/V
y/2.5V=100A/V
内项之积等于外项之积
y=2.5V*100A/1V
y=250A

第2个点就计算出来了,丁的坐标为(4096,250A)
计算斜率△y/△x

△y/△x=(250A-0A)/(4096-2048)
△y/△x=250A/2048
已知x,求y
(y-0A)/(x-2048)=250A/2048
y/(x-2048)=250A/2048

还是内项之积等于外项之积
y=(x-2048)*250A/2048
这就OK了
使用50%验证
(4096+2048)/2=3072
(250A+0A)/2=125A

应为(3072,125A)
y=(3072-2048)*250A/2048

y=1024*250A/2048
y=250A/2

y=125A
验证OK
编程
采用定点计算,电流分辨率设置为0.1A
unsigned int Calculate_Current(unsigned int x)
{
    return (unsigned int)((unsigned long)x-2048UL)*2500UL/2048UL;
}
化简得

unsigned int Calculate_Current(unsigned int x)
{
    return (unsigned int)((unsigned long)x-2048UL)*625UL/512UL;
}

输入参数为ADC值,返回值为电流(单位A)的10倍(0.1A)
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:424
  • 最近打卡:2025-05-02 14:37:11
已绑定手机

77

主题

4849

回帖

8382

积分

超级版主

DebugLab

积分
8382
发表于 2024-10-13 01:02:55 | 显示全部楼层

不应按照2047计算,应按照2048计算,因为相邻两个值永远是2048分之1

点评

我的计算表格中,满幅2047对应的电压是4.998779296875V,并不是按5V算的,所以和2048对应5V的思路并不矛盾,或者说是异曲同工,并无不妥。  详情 回复 发表于 2024-10-13 10:29
搞了十几年计量仪器,一直是这么算的,难道说我一直错了么,出的货不计其数了,如果是我错了,简直罪孽深重  详情 回复 发表于 2024-10-13 10:17
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-04-17 16:11:00

28

主题

48

回帖

261

积分

中级会员

积分
261
发表于 2024-10-13 09:50:08 | 显示全部楼层
感谢热心的大神们,,跪谢跪谢!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:417
  • 最近打卡:2025-04-30 21:39:09
已绑定手机

34

主题

2096

回帖

2206

积分

荣誉版主

积分
2206
发表于 2024-10-13 10:17:51 | 显示全部楼层
Debu*** 发表于 2024-10-13 01:02
不应按照2047计算,应按照2048计算,因为相邻两个值永远是2048分之1

搞了十几年计量仪器,一直是这么算的,难道说我一直错了么,出的货不计其数了,如果是我错了,简直罪孽深重

点评

误差2048分之一,可以忽略不计了,无所谓  详情 回复 发表于 2024-10-13 14:41
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:417
  • 最近打卡:2025-04-30 21:39:09
已绑定手机

34

主题

2096

回帖

2206

积分

荣誉版主

积分
2206
发表于 2024-10-13 10:29:21 | 显示全部楼层
Debu*** 发表于 2024-10-13 01:02
不应按照2047计算,应按照2048计算,因为相邻两个值永远是2048分之1

我的计算表格中,满幅2047对应的电压是4.998779296875V,并不是按5V算的,所以和2048对应5V的思路并不矛盾,或者说是异曲同工,并无不妥。
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:176
  • 最近打卡:2025-02-19 17:24:49

15

主题

265

回帖

1387

积分

金牌会员

积分
1387
发表于 2024-10-13 11:31:04 | 显示全部楼层
晓*** 发表于 2024-10-13 10:17
搞了十几年计量仪器,一直是这么算的,难道说我一直错了么,出的货不计其数了,如果是我错了,简直罪孽深 ...

你是对的,例如从0到9,9代表的最高,10就已经是2位数了。同理。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:424
  • 最近打卡:2025-05-02 14:37:11
已绑定手机

77

主题

4849

回帖

8382

积分

超级版主

DebugLab

积分
8382
发表于 2024-10-13 14:41:43 | 显示全部楼层
晓*** 发表于 2024-10-13 10:17
搞了十几年计量仪器,一直是这么算的,难道说我一直错了么,出的货不计其数了,如果是我错了,简直罪孽深 ...

误差2048分之一,可以忽略不计了,无所谓
DebugLab
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 20:40 , Processed in 0.355545 second(s), 116 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表