找回密码
 注册
关于网站域名变更的通知
查看: 182|回复: 2
打印 上一主题 下一主题

单片机怎么判断某个数据范围?才不会在临界值不稳定

[复制链接]
  • TA的每日心情
    奋斗
    2022-1-21 15:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2022-7-21 13:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    如何判断某个数据范围,且不会被在临界值跳动,造成判断不稳定。比如判断一个温度36.3-36.9,亮起第一个灯,36.9-37.3亮起第二个灯。如果在36.9中间跳动一会,就会出现一下两个灯亮,一下一个灯亮,如何解决这个问题,大佬们帮帮忙提个方案,有示例代码更好。万分感谢!!7 k$ T: l9 ^) t- {5 @2 E+ ^/ v/ t8 L
  • TA的每日心情
    开心
    2022-1-29 15:07
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2022-7-21 14:02 | 只看该作者
    加一段滞回hysteresis呗。超过36.95才亮起第二个灯,低于36.85才亮起第一个灯,并熄灭第二个灯。
  • TA的每日心情
    开心
    2022-1-29 15:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2022-7-21 14:02 | 只看该作者
    1. 输入数值滤波后才比较- n5 a. I4 M% F; t7 g
    2. 比较范围加死区。如判断一个温度36.3-36.9,亮起第一个灯,36.9-37.3亮起第二个灯
    ' q! _% f  `: h% k& |7 B5 b& S" y9 @4 ?9 }& Z4 [+ i
    代码就写为
    3 B& U- h( f% F
    • if(ADC>= 36.4 && ADC <= 36.8)
    • {
    •         led1 = On;
    • }
    • else
    • {
    •         led1 = Off;
    • }
    • if(ADC>= 37。0 && ADC <= 37.2)
    • {
    •         led2 = On;
    • }
    • else
    • {
    •         led2 = Off;
    • }
      0 x. X9 |. N* ~- a8 S/ [

    - U0 g1 w5 T7 K+ e2 a( ^, D# k# ^( N+ N

    4 N& i3 n% e  g- P9 v
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-16 17:17 , Processed in 0.125000 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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