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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4488|回復: 4
收起左側

ds18b20溫度控制如何寫入上下溫值回差?

[復制鏈接]
ID:208180 發表于 2018-5-17 17:06 | 顯示全部樓層 |閱讀模式
20黑幣
ds18b20的程序寫完了之后在實驗過程中發現了一個問題:
因為溫度在限定值存在一定范圍的上下波動(±0.5~0.8度),從而影響到了蜂鳴器的報警。
比如設定上限值在20度,下限值在8度,在溫度到達20度的瞬間警報器持續響3秒后,繼電器啟動制冷,
但在啟動制冷的過程,溫度會在20度左右波動(如20度--19.8度--20度--20.6度--20度),在這個期間只要觸碰到大于20度這個限值,蜂鳴器就會瞎叫,
下限值8度范圍也是同樣情況。

我試過把蜂鳴器的三秒報警程序刪掉,直接寫成高于20度報警,低于20度取消報警。
但是繼電器從啟動制冷開始,到低于20度為止用的時間太長了,這個時間內蜂鳴器一直在叫,很吵。

所以我想寫一組上下回差的判斷,在0.5~0.8度這個上下回差的溫度內,不啟動控制,從而防止設備頻繁啟動。
但不知道應該怎么下手,所以想在這里問問各位,獲取一些參考。。

ds18b20讀時序,lcd顯示這些跟回差判斷沒什么聯系,所以在這里我就先不貼出來了。
以下是判斷的程序:

void fengming_start()         //        蜂鳴器響2-3秒程序
{
        fengming=0;
        delay(2000);
        fengming=1;
}


void main()
{
        motor2=0;
        fengming=1;
        led1=led2=led3=1;

        while(1)
        {

                        delayMs(1000);
                        display(getTmpValue());
                        sendChangeCmd();
                       
                        led1 = !led1;       //工作指示燈閃爍
                        if(RunTemp != 85)                  //當顯示的數值不等于85時
                        {
                                if(RunTemp >= 20)        //當溫度大于等于20度
                                {
                                        led2 = 0;
                                        led3 =1;
                                        fengming_start();     //蜂鳴器響2-3秒
                                        motor2 = 1;          //繼電器閉合
                                }
                                else
                                        led2 = 1;
                                if(RunTemp <= 8)          //當溫度小于等于8度
                                {
                                        led3 = 0;
                                        led2 = 1;
                                        fengming_start();   //蜂鳴器響2-3秒
                                        motor2 = 0;          //繼電器打開
                                }
                                else
                                        led3 = 1;
                        }
                                                                         
        }  


}

回復

使用道具 舉報

ID:158375 發表于 2018-5-18 11:16 | 顯示全部樓層
你把上限制溫度設定為20度,程序中溫度上升到20度時報警并同時加一個報警鎖,然后啟動制冷,這時溫度波動到20度時也不報警,因為鎖。
程序中溫度下降為19度是解報警鎖,其它正常;
我想,這樣就可以了吧。
回復

使用道具 舉報

ID:330198 發表于 2018-5-18 14:54 | 顯示全部樓層
你判斷溫度的時候順便加個電機判斷,當電機運行的時候溫度再高也不報警
回復

使用道具 舉報

ID:336165 發表于 2018-5-24 21:58 | 顯示全部樓層
一:可以在if。。。>20后面加個delay然后再if這樣瞬態波動可以消除,
二:可以設置制冷過程中報警器不叫
三:可以設置兩層上下限,隔層中蜂鳴器不叫,但制冷器工作,如果工作過程中制冷器一時半會降不下溫,碰到上層上限,再報警
回復

使用道具 舉報

ID:7485 發表于 2018-5-25 10:42 | 顯示全部樓層
這個不是報警上下限的問題。是你檢測時間間隔太短。一般像這樣的溫控應用,檢測間隔應在數秒到1、2分鐘。因為溫度變化是有慣性的,不可能你一加熱立馬溫度就上來,一制冷馬上就下去。

另外,測溫探頭的放置點也有講究,不可以放在制熱源、制冷源邊上,不然其他稍遠一些地方的溫度還沒變化呢......


回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人av免费 | 亚洲欧美一区二区三区1000 | 一级在线免费观看 | 日本久久综合网 | 欧美日韩视频在线第一区 | 一级一级一级毛片 | 国产高清精品一区二区三区 | 国产一二区免费视频 | 亚洲色图插插插 | 亚洲综合成人网 | 日韩精品一区二区三区在线观看 | 亚洲一区二区高清 | 91视频www.| 男人的天堂在线视频 | 国产一区二区三区色淫影院 | 成人三区四区 | 日韩欧美黄色 | 一级毛片免费 | 日韩午夜影院 | 亚洲电影一级片 | 天堂一区在线观看 | 婷婷综合激情 | 欧美亚洲国产一区 | 亚洲毛片在线观看 | 全免费a级毛片免费看视频免费下 | 亚洲成人精选 | 韩国av网站在线观看 | 黄网免费 | 男人av网 | 黄色片网站在线观看 | 蜜臀网 | 国产色婷婷精品综合在线手机播放 | 一色桃子av一区二区 | 人人爽日日躁夜夜躁尤物 | 欧美精| 成人精品一区亚洲午夜久久久 | 青青久草 | 亚洲www啪成人一区二区 | 亚洲一区二区三区在线 | 午夜精品久久 | 污视频在线免费观看 |