建议连续判断几次,只有每次判断都成立时,在执行结果。 |
先保证4舍5入是正确的,AD值加入数字滤波:比如一次转换3~20个值,求平均。或者丢掉最大、最小值求平均。另外AD的Vref要加去耦电容,如1uf~0.1uf试试,PTC最好也加电容在AD输入端。温度有惰性,不会快速变化。 |
lmyapple 发表于 2019-9-9 15:32 已经求过平均值了 取个范围 能具体说说吗 |
好好缕一缕 |
如痴百感生 发表于 2019-9-9 16:53 先保证4舍5入是正确的,AD值加入数字滤波:比如一次转换3~20个值,求平均。或者丢掉最大、最小值求平均。另外AD的Vref要加去耦电容,如1uf~0.1uf试试,PTC最好也加电容在AD输入端。温度有惰性,不会快速变化。 |
f556 发表于 2019-9-9 15:21 试过了 不行 还是上下跳动,因为那个脚接的是继电器 会嗒嗒嗒 |
做几个点的平均,用平均值判断;或者取个范围 |
如痴百感生 发表于 2019-9-9 10:25 这简单,小学时的东西,判断的值用四舍五入,显示不管。其实还可加入数字滤波算法,但此处四舍五入足够用了。 |
f556 发表于 2019-9-9 09:28 谢谢 这个问题我解决了 我能不能问一个问题 就是我的温度是采集计算来的 这个数值会出现上下波动的情况,例如 判定是18,即使采集到了18 这个数值也会在17.9和18.1之间跳动 那么结果也会跳动 有没有什么办法可以处理这种情况 |
if ( (temp<20) && ( temp<25) )错误,改成if ( (temp>20) && ( temp<25) |
ADC_Read占时序了,需要适当的延时 |
现画出框图,框图中应有冲突发生后的预案。 |