久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1971|回復: 7
打印 上一主題 下一主題
收起左側

單片機怎么判斷某個數據范圍?才不會在臨界值不穩定,大佬請指教

[復制鏈接]
跳轉到指定樓層
樓主
ID:959051 發表于 2022-7-20 15:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如何判斷某個數據范圍,且不會被在臨界值跳動,造成判斷不穩定。比如判斷一個溫度36.3-36.9,亮起第一個燈,36.9-37.3亮起第二個燈。如果在36.9中間跳動一會,就會出現一下兩個燈亮,一下一個燈亮,如何解決這個問題,大佬們幫幫忙提個方案,有示例代碼更好。萬分感謝!!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:883242 發表于 2022-7-20 18:10 | 只看該作者
加一段滯回hysteresis唄。超過36.95才亮起第二個燈,低于36.85才亮起第一個燈,并熄滅第二個燈。
回復

使用道具 舉報

板凳
ID:161164 發表于 2022-7-20 21:42 | 只看該作者
1. 輸入數值濾波后才比較
2. 比較范圍加死區。如判斷一個溫度36.3-36.9,亮起第一個燈,36.9-37.3亮起第二個燈

代碼就寫為
  1. if(ADC>= 36.4 && ADC <= 36.8)
  2. {
  3.         led1 = On;
  4. }
  5. else
  6. {
  7.         led1 = Off;
  8. }
  9. if(ADC>= 37。0 && ADC <= 37.2)
  10. {
  11.         led2 = On;
  12. }
  13. else
  14. {
  15.         led2 = Off;
  16. }
復制代碼




回復

使用道具 舉報

地板
ID:401564 發表于 2022-7-20 22:53 | 只看該作者
如果單片機有足夠的空間,你又不在乎效率的話,可以參考一下這個,這個是我一個鋰電池電量指示函數
你參考一下,大概原理就是電壓變化量超過0.05V時才進行比較,不會在臨界點來回跳的
//────────────────────────────────────────────
void Battry_Voltage_Disp(float Bat_Voltage)                                                //電池電壓處理,用于顯示指示燈和自動關機
{                                                                                                                                //Bat_Voltage為當前電池電壓
        float a;                                                                                                        //Last_Voltage為全局變量
        a=Bat_Voltage-Last_Voltage;                                                                         //本次電壓值和上次電壓進行比較
        a=fabs(a);                                                                                                         //絕對值
if(a>0.05)                                                                                         
                        {                               
                                 Last_Voltage=Bat_Voltage;                                                //電池電壓變化超過0.05V,保存為上次電壓
                                a=Bat_Voltage;
                                if(a<2.9)ON=0;                                                                        //關機電壓:2.9V               
                                else if(a<3.35)Flash_light();                                        //指示燈:閃燈                               
                                else if((a>3.35)&&(a<3.55))Red_light();                        //指示燈:紅燈                                               
                                else if((a>3.55)&&(a<3.65))Orange_light();                //指示燈:橙燈
                                else         Green_light();                                                        //指示燈:綠燈
                        }
                       
}
//─────────────────────────────────────────────────

回復

使用道具 舉報

5#
ID:959051 發表于 2022-7-21 20:29 | 只看該作者
Y_G_G 發表于 2022-7-20 22:53
如果單片機有足夠的空間,你又不在乎效率的話,可以參考一下這個,這個是我一個鋰電池電量指示函數
你參考一 ...

你好,感謝你江湖救急,謝謝!!想問下 Last_Voltage全局變量數據類型和初始值是多少?另外fabs絕對值是多少?
回復

使用道具 舉報

6#
ID:401564 發表于 2022-7-22 07:10 | 只看該作者
guoqiang881245 發表于 2022-7-21 20:29
你好,感謝你江湖救急,謝謝!!想問下 Last_Voltage全局變量數據類型和初始值是多少?另外fabs絕對值是 ...

Last_Voltage為浮點型呀,初始值為0.00
Bat_Voltage為電池電壓,是ADC計算好了的浮點型數據
a=Bat_Voltage-Last_Voltage;         //本次電壓值和上次電壓進行比較
a的值就是本次電壓和上次電壓的相差值,有正值也有負值,所以進行絕對值運算
變化超過0.05V就進行處理,不然的話,還是上次比較的結果
這個0.05V是可以改的,你調試的時候自己改一下,感覺良好就行
回復

使用道具 舉報

7#
ID:359272 發表于 2022-7-22 08:10 | 只看該作者
設置上下閾值,軟件模擬一個施密特觸發器
回復

使用道具 舉報

8#
ID:959051 發表于 2022-7-22 18:38 | 只看該作者
Y_G_G 發表于 2022-7-22 07:10
Last_Voltage為浮點型呀,初始值為0.00
Bat_Voltage為電池電壓,是ADC計算好了的浮點型數據
a=Bat_Voltag ...

好的  明白了,很感謝你的講解
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日日爱av | 婷婷丁香综合网 | 国产区久久 | 在线观看免费av网 | 一区二区三区不卡视频 | 午夜视频在线 | 日韩在线免费看 | 日韩欧美国产一区二区 | 免费看a| 九九av | 天天综合久久 | 大久 | 久久不卡区| 中文在线一区 | 国产欧美一区二区三区另类精品 | 亚洲精品一区二区三区蜜桃久 | 福利一区在线观看 | 美国一级毛片a | аⅴ资源新版在线天堂 | 在线国产中文字幕 | 99影视| 一区二区三区在线电影 | 亚洲 中文 欧美 日韩 在线观看 | 亚洲资源站 | 亚洲人成人一区二区在线观看 | 日韩亚洲视频在线 | 欧美日韩亚洲系列 | 一区二区三区免费看 | 黄色国产在线播放 | 人人看人人草 | 久久久www成人免费无遮挡大片 | 国产精品成人69xxx免费视频 | 激情五月婷婷综合 | 精品久久久久久久久久久院品网 | 免费视频久久 | 中文字幕国产高清 | 在线中文字幕视频 | 午夜视频在线免费观看 | www.亚洲免费 | www.黄色片视频 | 成人亚洲一区 |