找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2501|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

求大神指導(dǎo)學(xué)習(xí) 基于單片機(jī)的窗戶自動控制系統(tǒng)設(shè)計(jì)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:843765 發(fā)表于 2021-3-31 11:49 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
243黑幣
由于本論壇禁止直接求程序,禁止伸手黨,所以向大家請教一下大致的實(shí)現(xiàn)方法與思路,理清頭緒后我自己來寫程序去實(shí)現(xiàn),謝謝大家

我嘗試做了,但是仿真一直失敗,不知道是軟件問題還是我設(shè)計(jì)的有問題
程序我是參考的論壇大佬修改的
這是系統(tǒng)框圖,只要求做出電路原理圖和仿真結(jié)果圖片,不要很復(fù)雜很復(fù)雜我也不懂,我只是一個真心想學(xué)單片機(jī)技術(shù)的小白
有沒有大佬來指導(dǎo)一下

3.png (16.92 KB, 下載次數(shù): 58)

3.png

最佳答案

查看完整內(nèi)容

這個程序你可以參考學(xué)習(xí)一下,壇子里面還有很多http://www.torrancerestoration.com/bbs/dpj-179272-1.html你把可以把你寫的代碼貼上來,大家一起研究一下問題出在哪里.一起學(xué)習(xí)技術(shù) Proteus7.5版本仿真結(jié)果如下:
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:328014 發(fā)表于 2021-3-31 11:49 | 只看該作者
這個程序你可以參考學(xué)習(xí)一下,壇子里面還有很多http://www.torrancerestoration.com/bbs/dpj-179272-1.html你把可以把你寫的代碼貼上來,大家一起研究一下問題出在哪里.一起學(xué)習(xí)技術(shù)
Proteus7.5版本仿真結(jié)果如下:

回復(fù)

使用道具 舉報(bào)

板凳
ID:584814 發(fā)表于 2021-3-31 22:52 | 只看該作者
如果把賞金單位換成米刀結(jié)果就不一樣了,全套的都有呵呵
回復(fù)

使用道具 舉報(bào)

地板
ID:843765 發(fā)表于 2021-3-31 23:13 | 只看該作者
51hei團(tuán)團(tuán) 發(fā)表于 2021-3-31 23:05
這個程序你可以參考學(xué)習(xí)一下,壇子里面還有很多http://www.torrancerestoration.com/bbs/dpj-179272-1.html你把可以把你寫 ...

我就是參考的那個人的,他的太復(fù)雜了  程序多的放不下。
回復(fù)

使用道具 舉報(bào)

5#
ID:843765 發(fā)表于 2021-4-1 20:26 | 只看該作者
51hei團(tuán)團(tuán) 發(fā)表于 2021-3-31 11:49
這個程序你可以參考學(xué)習(xí)一下,壇子里面還有很多http://www.torrancerestoration.com/bbs/dpj-179272-1.html你把可以把你寫 ...

unsigned char flage=0;             //0為智能模式(默認(rèn)模式),1為手動模式
unsigned int status=0;             //默認(rèn)窗戶為關(guān),1為開
以下是循環(huán)判斷執(zhí)行程序的分析:
while(1)
{
if(anjian==1)      //進(jìn)行按鍵的判斷,執(zhí)行相關(guān)模式
{
Delay10ms();              //延時消抖判斷
if(anjian==1)
{
led1 = !led1; led2 = !led2;     //進(jìn)行相關(guān)指示燈的亮滅控制,反轉(zhuǎn)
         flage = !flage;
         Delay300ms();//延時避免程序多次執(zhí)行
}
}

if(flage==0)              //窗戶開關(guān)狀態(tài)判斷,通過flag標(biāo)志位
{

value = rain_read();             //進(jìn)行雨水量的讀取,采取模擬量
    DHT11_ReadTempAndHumi();            //調(diào)用溫濕度傳感器,進(jìn)行相關(guān)數(shù)據(jù)的獲取
    uart_1_println(temp_value);
  uart_1_println(value);

if(status==0)    //窗戶為關(guān)閉狀態(tài)
{
if((value>3800)&&(temp_value>250))      關(guān)窗條件的設(shè)定
{
Motor_run(1)   //電機(jī)動作程序調(diào)用
}
}
else
{
if(value<3800||temp_value<200)
{
Motor_run(2)   //電機(jī)動作程序調(diào)用,與上文調(diào)用,相比,電機(jī)反向
}
}
}
else
{    }  }
回復(fù)

使用道具 舉報(bào)

6#
ID:843765 發(fā)表于 2021-4-1 20:26 | 只看該作者
51hei團(tuán)團(tuán) 發(fā)表于 2021-3-31 11:49
這個程序你可以參考學(xué)習(xí)一下,壇子里面還有很多http://www.torrancerestoration.com/bbs/dpj-179272-1.html你把可以把你寫 ...
  1. extern unsigned char DHT11_ReadTempAndHumi(void)
  2. {
  3.    unsigned char i = 0, check_value = 0, count = 0;
  4.    EA = 0;
  5.    dht11 = 0;     //拉低數(shù)據(jù)線大于 18ms 發(fā)送開始信號
  6.    Delay_1ms(20); //需大于 18 毫秒
  7.    dht11 = 1;     //釋放數(shù)據(jù)線,用于檢測低電平的應(yīng)答信號
  8.    //延時 20-40us,等待一段時間后檢測應(yīng)答信號,應(yīng)答信號是從機(jī)拉低數(shù)據(jù)線 80us
  9.    DHT11_Delay_10us();
  10.    DHT11_Delay_10us();
  11.    DHT11_Delay_10us();
  12.    DHT11_Delay_10us();
  13.    if (dht11 != 0) //檢測應(yīng)答信號,應(yīng)答信號是低電平
  14.    {
  15.        //沒應(yīng)答信號
  16.        EA = 1;
  17.        return ERROR;
  18.    }
  19.    else
  20.    {
  21.        //有應(yīng)答信號
  22.        while (dht11 == 0 && count++ < NUMBER)
  23.            ;                //等待應(yīng)答信號結(jié)束
  24.        if (count >= NUMBER) //檢測計(jì)數(shù)器是否超過了設(shè)定的范圍
  25.        {
  26.            dht11 = 1;
  27.            EA = 1;
  28.            return ERROR; //讀數(shù)據(jù)出錯,退出函數(shù)
  29.        }
  30.        count = 0;
  31.        dht11 = 1; //釋放數(shù)據(jù)線
  32.        //應(yīng)答信號后會有一個 80us 的高電平,等待高電平結(jié)束
  33.        while (dht11 != 0 && count++ < NUMBER)
  34.            ;
  35.        if (count >= NUMBER)
  36.        {
  37.            dht11 = 1;
  38.            EA = 1;
  39.            return ERROR; //退出函數(shù)
  40.        }
  41.        //讀出濕.溫度值
  42.        for (i = 0; i < SIZE; i++)
  43.        {
  44.            value_array[i] = DHT11_ReadValue();
  45.            if (status == ERROR) //調(diào)用 ReadValue()讀數(shù)據(jù)出錯會設(shè)定 status 為 ERROR
  46.            {
  47.                dht11 = 1;
  48.                EA = 1;
  49.                return ERROR;
  50.            }
  51.            //讀出的最后一個值是校驗(yàn)值不需加上去
  52.            if (i != SIZE - 1)
  53.            {
  54.                //讀出的五字節(jié)數(shù)據(jù)中的前四字節(jié)數(shù)據(jù)和等于第五字節(jié)數(shù)據(jù)表示成功
  55.                check_value += value_array[i];
  56.            }
  57.        } //end for
  58.        //在沒用發(fā)生函數(shù)調(diào)用失敗時進(jìn)行校驗(yàn)
  59.        if (check_value == value_array[SIZE - 1])
  60.        {
  61.            //將溫濕度擴(kuò)大 10 倍方便分離出每一位
  62.            humi_value = value_array[0] * 10;
  63.            temp_value = value_array[2] * 10;
  64.            dht11 = 1;
  65.            EA = 1;
  66.            return OK; //正確的讀出 dht11 輸出的數(shù)據(jù)
  67.        }
  68.        else
  69.        {
  70.            //校驗(yàn)數(shù)據(jù)出錯
  71.           EA = 1;
  72.            return ERROR;
  73.        }
  74.    }
  75. }
復(fù)制代碼

上述程序就是DHT11的驅(qū)動程序。
回復(fù)

使用道具 舉報(bào)

7#
ID:843765 發(fā)表于 2021-4-1 20:29 | 只看該作者
51hei團(tuán)團(tuán) 發(fā)表于 2021-3-31 11:49
這個程序你可以參考學(xué)習(xí)一下,壇子里面還有很多http://www.torrancerestoration.com/bbs/dpj-179272-1.html你把可以把你寫 ...

我沒直接求程序   我只是沒有仿真圖  電腦打不開而已  至于程序?qū)﹀e我看不出來   因?yàn)槎际菂⒖紕e人的
我本身不是干這個的
回復(fù)

使用道具 舉報(bào)

8#
ID:843765 發(fā)表于 2021-4-1 20:32 | 只看該作者
51hei團(tuán)團(tuán) 發(fā)表于 2021-3-31 11:49
這個程序你可以參考學(xué)習(xí)一下,壇子里面還有很多http://www.torrancerestoration.com/bbs/dpj-179272-1.html你把可以把你寫 ...

原理圖不清晰  而且我沒電腦就弄不好了  每次都在網(wǎng)吧做的
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表