《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)的光控窗簾設(shè)計(jì)
基于單片機(jī)的光控窗簾設(shè)計(jì)
來(lái)源:微型機(jī)與應(yīng)用2012年第16期
孫 勤
(江蘇省鹽城技師學(xué)院, 江蘇 鹽城 224001)
摘要: 為了能根據(jù)室外環(huán)境亮度實(shí)現(xiàn)窗簾自動(dòng)拉合的設(shè)計(jì)需求,提出了一種基于單片機(jī)控制的光控窗簾設(shè)計(jì)方案,,并完成系統(tǒng)的軟,、硬件設(shè)計(jì),。該系統(tǒng)的硬件部分主要利用光敏傳感器產(chǎn)生的信號(hào)作為單片機(jī)輸入信號(hào),,軟件部分采用C語(yǔ)言進(jìn)行編程,,能夠完成智能光控窗簾的自動(dòng)拉合,。同時(shí),,考慮到用戶習(xí)慣和天氣原因,,本方案還設(shè)置了選擇開關(guān),,用戶在使用窗簾時(shí)可任意選擇自動(dòng)或手動(dòng)控制方式。實(shí)際應(yīng)用表明,,該系統(tǒng)具有設(shè)計(jì)成本低,、可靠性高的特點(diǎn),達(dá)到了設(shè)計(jì)要求,。
Abstract:
Key words :

摘  要: 為了能根據(jù)室外環(huán)境亮度實(shí)現(xiàn)窗簾自動(dòng)拉合的設(shè)計(jì)需求,,提出了一種基于單片機(jī)控制的光控窗簾設(shè)計(jì)方案,并完成系統(tǒng)的軟,、硬件設(shè)計(jì),。該系統(tǒng)的硬件部分主要利用光敏傳感器產(chǎn)生的信號(hào)作為單片機(jī)輸入信號(hào),軟件部分采用C語(yǔ)言進(jìn)行編程,,能夠完成智能光控窗簾的自動(dòng)拉合,。同時(shí),考慮到用戶習(xí)慣和天氣原因,,本方案還設(shè)置了選擇開關(guān),,用戶在使用窗簾時(shí)可任意選擇自動(dòng)或手動(dòng)控制方式。實(shí)際應(yīng)用表明,,該系統(tǒng)具有設(shè)計(jì)成本低,、可靠性高的特點(diǎn),達(dá)到了設(shè)計(jì)要求,。
關(guān)鍵詞:單片機(jī),;光敏傳感器;直流電動(dòng)機(jī),;C語(yǔ)言,;智能光控窗簾

    隨著生活水平的不斷提高,,人們對(duì)家庭生活舒適度的要求也越來(lái)越高,具有裝飾,、遮光并能進(jìn)行自動(dòng)開合的智能光控窗簾成為了現(xiàn)代家居生活的新寵,。為了能根據(jù)室外環(huán)境亮度實(shí)現(xiàn)窗簾自動(dòng)拉合的設(shè)計(jì)需求,本文提出了一種基于單片機(jī)控制的光控窗簾設(shè)計(jì)方案,。
1 系統(tǒng)概述
    本設(shè)計(jì)由單片機(jī),、傳感器和直流電動(dòng)機(jī)組成,以AT89C51單片機(jī)[1-2]芯片為核心,,運(yùn)用光敏傳感器技術(shù),,將室外環(huán)境亮度作為單片機(jī)的控制信號(hào),實(shí)現(xiàn)窗簾的自動(dòng)拉合,。同時(shí),考慮到用戶習(xí)慣和天氣原因,,本方案還設(shè)置了選擇開關(guān),用戶在使用窗簾時(shí)可任意選擇自動(dòng)或手動(dòng)控制方式,。當(dāng)選擇自動(dòng)控制模式時(shí),,單片機(jī)將室外環(huán)境光線亮度作為輸入信號(hào),單片機(jī)控制程序根據(jù)光敏傳感器所產(chǎn)生的電流信號(hào)的強(qiáng)弱自動(dòng)調(diào)節(jié)直流電機(jī)的正反轉(zhuǎn),,從而實(shí)現(xiàn)窗簾的自動(dòng)拉合;當(dāng)選擇手動(dòng)控制模式時(shí),,單片機(jī)將手動(dòng)控制開關(guān)作為輸入信號(hào),單片機(jī)控制程序根據(jù)開關(guān)信號(hào)控制電機(jī)的正反轉(zhuǎn),,從而實(shí)現(xiàn)窗簾的手動(dòng)拉合,。
2 系統(tǒng)硬件設(shè)計(jì)
    本系統(tǒng)硬件系統(tǒng)主要由傳感器、單片機(jī),、直流電動(dòng)機(jī)三大部分組成[3-4],,如圖1所示。

2.1元器件選擇
    (1)單片機(jī)芯片
    本文選擇AT89C51單片機(jī)作為控制芯片,,可以反復(fù)修改1 000多次,。
  (2)光敏傳感器
    光敏傳感器尺寸為32 mm×11 mm×20 mm,型號(hào)為EPSON 1600K3+,,工作電壓為直流5 V,,可用于光控場(chǎng)合、無(wú)需驅(qū)動(dòng),、可直接接單片機(jī),。
    (3)電機(jī)
    選擇775微型電動(dòng)機(jī),其工作電流為5 A,,工作電壓為27 V,。能承受頻繁的沖擊負(fù)載,發(fā)熱量低,、驅(qū)動(dòng)功率較小,,滿足負(fù)載較輕的智能窗簾的驅(qū)動(dòng)需求,。
    材料清單如表1所示。

2.2 硬件電路設(shè)計(jì)圖
    本電路由電源部分,、光感應(yīng)部分,、數(shù)據(jù)存儲(chǔ)部分和顯示部分組成。硬件電路設(shè)計(jì)圖如圖2所示,。電源部分通過(guò)外接插座輸入直流13 V~14 V電壓;P2.2接光敏傳感器接收光信號(hào),,單片機(jī)P1.0,、P1.1控制電機(jī)運(yùn)行。P0.0,、P0.1接正反轉(zhuǎn)指示燈,,其中按鈕接共陰極,低電平有效;指示燈共陽(yáng)極,,低電平有效,。

3 系統(tǒng)軟件設(shè)計(jì)
    系統(tǒng)軟件主要實(shí)現(xiàn)智能光控、手動(dòng)控制兩大功能,,采用C語(yǔ)言進(jìn)行編程,,可實(shí)現(xiàn)用戶在使用窗簾時(shí)任意選擇自動(dòng)或手動(dòng)控制方式[4-5]。
3.1程序流程圖
    光控窗簾程序流程圖如圖3所示,。

3.2 程序設(shè)計(jì)
    (1)光控程序
    當(dāng)天亮?xí)r,,有陽(yáng)光射進(jìn)屋內(nèi),傳感器感應(yīng)到光信號(hào),,此時(shí)電機(jī)正轉(zhuǎn),,窗簾開始打開,當(dāng)碰到開限位開關(guān)時(shí),,電機(jī)停止轉(zhuǎn)動(dòng);當(dāng)天黑時(shí),,傳感器接收到信號(hào),電機(jī)反轉(zhuǎn),,窗簾閉合,,當(dāng)碰到關(guān)限位開關(guān)時(shí),電機(jī)停止轉(zhuǎn)動(dòng),。具體程序如下:
     #include<reg51.h>
         #include<intrins.h>  
          #define uchar unsigned char
          #define uint unsigned int
           sbit K3=P2.2;   
                   //光控正轉(zhuǎn)或反轉(zhuǎn),,此處接光敏傳感器
          sbit K5=P2.4;                          //開限位
           sbit K6=P2.5;                                      //關(guān)限位
           sbit LED1=P0.0;                             //正轉(zhuǎn)指示燈
           sbit LED2=P0.1;   //反轉(zhuǎn)指示燈
           sbit MA=P1.0;
           sbit MB=P1.1;
           void main(void)
           {
               LED1=1;LED2=1;
                   while(1)
             {
          if(K7==0)
             sd();
          if (K3==0&&K4==1)    //光控正轉(zhuǎn)
           { while (K3==0&&K5==1&&K4==1)                
            {LED1=0;LED2=1;MA=0;MB=1;}
               LED1=1;LED2=1;MA=1;MB=1;
      }
         if (K4==0&&K3==1) //光控反轉(zhuǎn)
     { while (K4==0&&K6==1&&K3==1)
              { LED1=1;LED2=0;MA=1;MB=0; }
               LED1=1;LED2=1;MA=1;MB=1;
             }
       }
     }
    (2)手動(dòng)程序
    當(dāng)陰天或者晚上用戶要打開窗簾時(shí),只需將控制方式選擇按鈕P2.6按下,,就可以實(shí)現(xiàn)手動(dòng)控制窗簾的開合,。程序如下:
     #include<reg51.h>
     #include<intrins.h>
     #define uchar unsigned char
     #define uint unsigned int
     sbit K1=P2.0;                            //手動(dòng)正轉(zhuǎn)
     sbit K2=P2.1;                              //手動(dòng)反轉(zhuǎn)
     sbit K7=P2.6;                      //控制方式選擇按鈕
  sbit LED1=P0.0;                           //正轉(zhuǎn)指示燈
  sbit LED2=P0.1;                         //反轉(zhuǎn)指示燈
  sbit MA=P1.0;
  sbit MB=P1.1;
  void sd()                                   //子程序
  {
     while(1)
     {
         if(K7= =1)
          {
           return;
          }
         if (K1==0&&K2==1)                    //手動(dòng)正轉(zhuǎn)
          {
             while (K1==0&&K5==1&&K2==1)
              {
                LED1=0;LED2=1;MA=0;MB=1;
              }           
                LED1=1;LED2=1;MA=1;MB=1; //不轉(zhuǎn)
          }
          if (K2==0&&K1==1) //手動(dòng)反轉(zhuǎn)
          {
           while (K2==0&&K6==1&&K1==1)
              {
               LED1=1;LED2=0;MA=1;MB=0;
              }
              LED1=1;LED2=1;MA=1;MB=1;
          }
      }
  }   
4 調(diào)試與仿真
    將程序燒寫到AT89C51芯片中之后進(jìn)行調(diào)試。在調(diào)試過(guò)程中出現(xiàn)兩個(gè)主要問(wèn)題:(1)易將二極管極性接反,,故障現(xiàn)象為接通直流電源24 V時(shí)按下正,、反轉(zhuǎn)按鈕,電機(jī)可以正,、反轉(zhuǎn)但二極管不亮,解決方法是將二級(jí)管極性對(duì)調(diào),;(2)電路易有虛焊,、漏焊,故障現(xiàn)象為接通直流電源后,,選擇光控模式發(fā)現(xiàn)電機(jī)不動(dòng)作,,解決方法是將虛焊和漏焊處用電烙鐵重新焊接。
    本設(shè)計(jì)采用單片機(jī)控制的智能光控窗簾有較好的性價(jià)比,。實(shí)際應(yīng)用表明,,該測(cè)試系統(tǒng)具有測(cè)試準(zhǔn)確、穩(wěn)定可靠的特點(diǎn),,達(dá)到了設(shè)計(jì)要求,。
參考文獻(xiàn)
[1] 張?chǎng)? 單片機(jī)原理及應(yīng)用(第2版)[M].北京:電子工業(yè)出版社,2010.
[2] 胡漢才.單片機(jī)原理及其接口技術(shù)(第3版)[M]. 北京: 清華大學(xué)出版社,2010.
[3] 胡漢才.單片機(jī)原理及其接口技術(shù)學(xué)習(xí)輔導(dǎo)與實(shí)踐教程[M]. 北京:清華大學(xué)出版社,2010.
[4] 張義和. 例說(shuō)51單片機(jī)(C 語(yǔ)言版)[M]. 北京:人民郵電出版社,2008.
[5] 黃英.單片機(jī)工程應(yīng)用技術(shù)[M]. 上海:復(fù)旦大學(xué)出版社, 2011.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。