AO输出线性转换,0至100转换为4至20mA问题

2020-01-26 13:04发布

手机发帖有些无力

大概描述一下:
用户在界面上配置AO输出的值的范围是0至100,我在下面需要需要转换为4至20mA。

单片机使用PWM模拟输出电流信号。

上面给0下来的时候,单片机的PWM占空比寄存器填入10955,这时输出电流为4mA。

当上面给100下来的时候,单片机的占空比寄存器填入65535,这时输出电流为20mA。

想了半天,发现我想实现的还真不是线性的,
需要上面的0的对应当下面的10955,上面的100对应下面的65535,同时对于中间点50,需要对应下面的32767,保证输出电流是12mA。

就这些了,大概想了想,没找到比较简单直接的算法。

请教一下各位,谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
kevin_me
1楼-- · 2020-01-26 16:24
 精彩回答 2  元偷偷看……
xzq1019@163.com
2楼-- · 2020-01-26 17:09
pwm有点问题,最低电压的问题,最低电压是0.3V,这个要注意一下。
albert_w
3楼-- · 2020-01-26 19:32
为啥12mA要对应到32767呢?
要想这样对应, 须在AD之后用硬件做一个电流偏移
kevin_me
4楼-- · 2020-01-26 20:14
xzq1019@163.com 发表于 2013-9-21 02:33
pwm有点问题,最低电压的问题,最低电压是0.3V,这个要注意一下。

我这个是根据实测4mA得出的占空比寄存器的值,也就是占空比给10955的时候,正好输出电流为4mA。
kevin_me
5楼-- · 2020-01-27 02:08
albert_w 发表于 2013-9-21 02:43
为啥12mA要对应到32767呢?
要想这样对应, 须在AD之后用硬件做一个电流偏移

软件算法做不到吗

其实这里主要问题是零点被抬高,中间点和顶点又是正常,所以还不太容易想出简单的办法。
albert_w
6楼-- · 2020-01-27 02:33
 精彩回答 2  元偷偷看……

一周热门 更多>