newlined 发表于 2023-11-7 15:03:24

神农鼎 发表于 2023-11-7 14:51
讨论ADC, 你应该贴出你的 原理图的 PDF, 或者清晰的原理图图片,如我发的

好的,我现在正在测试,如果再不行,就贴出原理图,请您和大家帮忙,谢谢。

梁工 发表于 2023-11-7 16:27:31

梁工 发表于 2023-11-6 17:22
楼主程序判断2个点ADC值相差3,并且没有任何滤波措施,所以一点干扰或误差,就会导致错误。
并且ADC转换也 ...

应该使用10位或12位ADC,这样两个判断点的ADC能拉开比较大的距离。
使用适当、合理的数字滤波,是指软件滤波,比如平均值、一阶低通滤波等等。
楼主可以下载官方例子测试,串口直接观察ADC值。
也可以采样几百值,用EXCEL表分析你的干扰情况。

newlined 发表于 2023-11-8 14:08:01

梁工 发表于 2023-11-7 16:27
应该使用10位或12位ADC,这样两个判断点的ADC能拉开比较大的距离。
使用适当、合理的数字滤波,是指软件 ...

梁工你好,按照您昨天的提示,我跟踪了下,的确存在干扰,但现在产品成本压缩的厉害,更改电路不可能,
我采取了多次采样的办法,比如说在一次采样中测到电压小于1.48V,马上连续采样20次,如果这20次都小于1.48V,则终止充电。这个程序用了可能10几年了,我也不好做大的改动。按照前边的方法,到现在程序运行稳定,这几天我再测试下,如果不出问题,就算问题解决了,如果再出问题,再请您和大家帮忙,谢谢。

梁工 发表于 2023-11-8 16:14:31

newlined 发表于 2023-11-8 14:08
梁工你好,按照您昨天的提示,我跟踪了下,的确存在干扰,但现在产品成本压缩的厉害,更改电路不可能,
...

你这种情况,使用数字一阶低通滤波是比较好的,就是不知道你要求的相应速度。或者使用平均值滤波也可以,使用12位的ADC值,比如1ms采样一次,采样100次平均。

newlined 发表于 2023-11-9 14:42:16

本帖最后由 newlined 于 2023-11-9 15:02 编辑

梁工 发表于 2023-11-8 16:14
你这种情况,使用数字一阶低通滤波是比较好的,就是不知道你要求的相应速度。或者使用平均值滤波也可以, ...
梁工您好,您说的“数字一阶低通滤波”,我看了下,编程还比较复杂,这个产品对相应速度没有要求,几秒或者几分钟都可以。按照您昨天的提示,我采用多次采样的办法从今天上午开始,用了三块测试的板子,都没有问题了。我想问题应该解决了,非常感谢。

梁工 发表于 2023-11-9 16:53:35

newlined 发表于 2023-11-9 14:42
梁工您好,您说的“数字一阶低通滤波”,我看了下,编程还比较复杂,这个产品对相应速度没有要求,几秒或 ...

“数字一阶低通滤波,就是计算 Y(n) = Y(n-1) * (1-a) + adc*a,这是一阶RC的数字滤波形式,选择合适的a值,a越小,惯性越大,响应越慢,截止频率越低,输出越稳定。

li25 发表于 2023-11-9 17:10:18

来学习学习,很好的经验
页: 1 [2]
查看完整版本: 今天 关于ADC,遇到一个奇怪的问题【已解决】