《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 電源技術(shù) > 設(shè)計(jì)應(yīng)用 > 市電定時(shí)開關(guān)系統(tǒng)設(shè)計(jì)
市電定時(shí)開關(guān)系統(tǒng)設(shè)計(jì)
2016年微型機(jī)與應(yīng)用第08期
郝沛,黃魯
(中國(guó)科學(xué)技術(shù)大學(xué) 信息科學(xué)技術(shù)學(xué)院,安徽 合肥 230026)
摘要: 傳統(tǒng)市電開關(guān)需要人為干預(yù),在某些重復(fù)定時(shí)開關(guān)場(chǎng)景下使用不方便,且需要人為判斷通斷的條件。設(shè)計(jì)了一種智能開關(guān),可以實(shí)現(xiàn)設(shè)置時(shí)間段內(nèi)開關(guān)的自動(dòng)通斷,并且能夠借助傳感器數(shù)據(jù)輔助判斷通斷條件。實(shí)測(cè)結(jié)果表明,該系統(tǒng)工作穩(wěn)定,控制界面簡(jiǎn)潔友好。
Abstract:
Key words :

  郝沛,黃魯

 ?。ㄖ袊?guó)科學(xué)技術(shù)大學(xué) 信息科學(xué)技術(shù)學(xué)院,安徽 合肥 230026)

  摘要:傳統(tǒng)市電開關(guān)需要人為干預(yù),在某些重復(fù)定時(shí)開關(guān)場(chǎng)景下使用不方便,且需要人為判斷通斷的條件。設(shè)計(jì)了一種智能開關(guān),可以實(shí)現(xiàn)設(shè)置時(shí)間段內(nèi)開關(guān)的自動(dòng)通斷,并且能夠借助傳感器數(shù)據(jù)輔助判斷通斷條件。實(shí)測(cè)結(jié)果表明,該系統(tǒng)工作穩(wěn)定,控制界面簡(jiǎn)潔友好。

  關(guān)鍵詞市電定時(shí)開關(guān);時(shí)鐘芯片;傳感器;繼電器

0引言

  隨著家用電器的普及,傳統(tǒng)的手動(dòng)開關(guān)已經(jīng)無法滿足日益復(fù)雜的應(yīng)用場(chǎng)景。比如定時(shí)照明系統(tǒng),人為地去控制照明開關(guān),不但不方便,而且很難精確掌控開啟與停止時(shí)間。如果在市電與照明系統(tǒng)之間增加一級(jí)控制系統(tǒng),在設(shè)定好開關(guān)時(shí)間后,由系統(tǒng)執(zhí)行開關(guān)操作,并且可以根據(jù)環(huán)境光照度來選擇是否照明,則會(huì)帶來極大的方便[1]。推而廣之,定時(shí)抽水系統(tǒng)、定時(shí)充電系統(tǒng)、定時(shí)加熱系統(tǒng)都可以采用此種控制方案,從而給市電應(yīng)用場(chǎng)景帶來極大便利。

1系統(tǒng)簡(jiǎn)介

  本系統(tǒng)設(shè)計(jì)的核心思路是“以弱控強(qiáng),用戶定制;控時(shí)為主,傳感為輔”。硬件上,系統(tǒng)需要實(shí)現(xiàn)對(duì)傳感器以及外圍模塊的驅(qū)動(dòng);軟件上,系統(tǒng)需要實(shí)現(xiàn)人機(jī)交互界面的繪制、時(shí)間檢測(cè)以及傳感器數(shù)據(jù)的處理。

  1.1系統(tǒng)功能框圖

001.jpg

  如圖1所示,系統(tǒng)輸入為220 V的市電,通過繼電器后,輸出到被控電器,從而控制被控電器的開關(guān)。繼電器的作用為隔離強(qiáng)弱電,同時(shí)控制市電的通斷,其控制信號(hào)由控制系統(tǒng)提供??刂葡到y(tǒng)輸入電壓為9 V,由電源適配器提供。傳感器提供判斷通斷的輔助信號(hào),如光照度、水位、溫濕度等[2]。

  1.2系統(tǒng)主要模塊

  1.2.1主控制器STM32

  STM32是基于ARM Cortex-M3內(nèi)核的32位微處理器,主頻最高為72 MHz。它包含豐富的接口,且其內(nèi)部時(shí)鐘頻率可由用戶自主定制,能夠方便地開發(fā)出PWM輸出、頻率捕獲、脈寬捕獲等功能[3]。其GPIO口可自由配置為輸入/輸出模式、中斷模式、復(fù)用模式[4]。

  1.2.2定時(shí)器DS1302

  DS1302是DALLAS公司設(shè)計(jì)的一款低功耗時(shí)鐘芯片,具有涓流充電、閏年補(bǔ)償功能。芯片采用32.768 kHz晶振,且內(nèi)部集成了31 B的用于臨時(shí)數(shù)據(jù)存放的RAM寄存器。其采用3線I/O口與控制器通信:SCLK時(shí)鐘引腳,由主控芯片提供,用以實(shí)現(xiàn)數(shù)據(jù)的同步交互;I/O數(shù)據(jù)輸入/輸出引腳,用以串行數(shù)據(jù)傳輸;RST復(fù)位引腳,需在數(shù)據(jù)傳輸時(shí)強(qiáng)制拉高,在數(shù)據(jù)傳輸結(jié)束后強(qiáng)制拉低。

  1.2.3液晶顯示模塊LPH7366

  LPH7366是一款分辨率為84×48的單色液晶顯示模塊,具有功耗低、操作簡(jiǎn)便等優(yōu)點(diǎn),廣泛應(yīng)用于手機(jī)顯示屏、便攜式設(shè)備中,如NOKIA5110的液晶屏。

  LPH7366模塊采用四線I/O口與主機(jī)通信:CE使能引腳,低有效;SCK時(shí)鐘引腳;DATA串行數(shù)據(jù)傳輸引腳; CD命令/數(shù)據(jù)選擇引腳(低電平代表傳輸命令,高電平代表傳輸數(shù)據(jù))。

  由于LPH7366沒有集成字庫(kù),所以需要把ASICII字庫(kù)嵌入到代碼中去。

2系統(tǒng)硬件

  根據(jù)硬件功能,系統(tǒng)被劃分為以下幾個(gè)子系統(tǒng):電源系統(tǒng)、STM32主控系統(tǒng)、人機(jī)交互系統(tǒng)、時(shí)鐘系統(tǒng)、繼電器系統(tǒng)。各系統(tǒng)功能如下:

  (1)電源系統(tǒng):為整個(gè)定時(shí)開關(guān)系統(tǒng)提供工作電平。系統(tǒng)工作電平有兩種:9 V和3.3 V;

 ?。?)主控系統(tǒng):完成對(duì)整個(gè)系統(tǒng)的控制以及數(shù)據(jù)的采集處理;

 ?。?)人機(jī)交互系統(tǒng):提供人機(jī)交互接口,實(shí)現(xiàn)數(shù)據(jù)的反饋以及控制參數(shù)的配置;

 ?。?)時(shí)鐘系統(tǒng):提供實(shí)時(shí)時(shí)鐘數(shù)據(jù),供主控系統(tǒng)使用;

  (5)繼電器系統(tǒng):隔離強(qiáng)弱電系統(tǒng),并實(shí)現(xiàn)3.3 V電平對(duì)9 V電平的驅(qū)動(dòng)。

  2.1系統(tǒng)硬件框圖

  系統(tǒng)硬件框圖如圖2所示。

  

002.jpg

003.jpg


  2.2系統(tǒng)電路圖

  2.2.1STM32最小系統(tǒng)電路

  STM32能夠工作的最小系統(tǒng)電路包含電源輸入、復(fù)位電路、晶振電路。如圖3所示。

  2.2.2外圍設(shè)備電路

  外設(shè)電路包括電源電路、液晶+按鍵電路、實(shí)時(shí)時(shí)鐘電路和繼電器驅(qū)動(dòng)電路。

 ?。?)電源電路,如圖4所示。

004.jpg

  其輸出電壓由以下公式得到:

  VOUT=1.221×R1-R2R2(1)

  當(dāng)R1=10 kΩ,R2 =2.7 kΩ時(shí),VOUT=3.301 V。

 ?。?)時(shí)鐘電路

  時(shí)鐘電路采用DS1302方案。芯片有兩組供電電源Vcc1和Vcc2。Vcc2為主電源,Vcc1為備用電源。芯片會(huì)以電平較高的一端作為電源輸入,所以,為確保在系統(tǒng)掉電時(shí)時(shí)鐘芯片能夠正常工作,需要在Vcc1引腳處外加3 V蓄電池。

 ?。?)液晶驅(qū)動(dòng)電路

  由于LPH7366液晶模塊的邏輯驅(qū)動(dòng)電平為3 V,所以可直接將其引腳連接到STM32上。按鍵系統(tǒng)采用自彈式輕觸按鍵,連接到STM32的GPIO上,以中斷方式輸入。

  (4)繼電器驅(qū)動(dòng)電路

005.jpg

  由于繼電器線圈的工作電平為9 V,而STM32的邏輯電平為3.3 V,所以需要驅(qū)動(dòng)電路才能夠用STM32的驅(qū)動(dòng)電平來控制繼電器。此處使用晶體管SS8050作為驅(qū)動(dòng)電路,且將其設(shè)定為工作在飽和區(qū)內(nèi)。如圖5所示,假設(shè)晶體管BJT1的β=100,Vbe=0.7 V;繼電器線圈電阻Rk=70 Ω,繼電器工作電壓VIN=9 V。設(shè)STM32的PB.9腳輸出到R4上的電壓為Vin,三極管基極電流為Ib,集電極電流為Ic。假設(shè)三極管工作在臨界飽和區(qū),則:

  Ic=VIN/(R3+Rk)(2)

  Ib=Ic/β(3)

  Vin=Ib×R4+Vbe(4)

  可以得到三極管達(dá)到飽和狀態(tài)的最小輸入電壓Vin=0.75 V。即輸入電平超過0.75 V,三極管便會(huì)導(dǎo)通,從而繼電器吸合。由于在默認(rèn)條件下繼電器應(yīng)處于斷開狀態(tài),所以在三極管輸入端增加下拉電阻R5=10 kΩ。

3系統(tǒng)軟件

  3.1程序流程圖

  主程序的思路是,實(shí)時(shí)讀取時(shí)鐘芯片DS1302的時(shí)間,并顯示在液晶顯示屏上;同時(shí)檢測(cè)當(dāng)前時(shí)間是否進(jìn)入了用戶設(shè)定的繼電器吸合時(shí)間。如果進(jìn)入了設(shè)定時(shí)間,則吸合繼電器;如果在設(shè)定時(shí)間外,則斷開繼電器。主程序流程圖如圖6?!?/p>

006.jpg

007.jpg

  本系統(tǒng)中,按鍵的檢測(cè)是在中斷程序中實(shí)現(xiàn)的。由于在處理某一個(gè)中斷函數(shù)時(shí),其他同級(jí)或者更低級(jí)的中斷是被屏蔽的,所以中斷函數(shù)應(yīng)盡可能簡(jiǎn)短。本系統(tǒng)的按鍵中斷函數(shù)僅實(shí)現(xiàn)檢測(cè)哪個(gè)按鍵被按下,而按鍵消息處理函數(shù)是在中斷函數(shù)外實(shí)現(xiàn)的。按鍵中斷處理程序流程圖如圖7。

  3.2人機(jī)交互界面設(shè)計(jì)

  人機(jī)交互界面是本系統(tǒng)軟件的主要構(gòu)成部分。其完成的功能有:顯示當(dāng)前時(shí)間與定時(shí)時(shí)間段,繪制菜單以配合按鍵進(jìn)行設(shè)置,響應(yīng)按鍵信號(hào)并完成對(duì)應(yīng)功能。

  3.2.1菜單的繪制

  本系統(tǒng)菜單共有兩級(jí),采用鏈表結(jié)構(gòu)設(shè)計(jì),其結(jié)構(gòu)如圖8所示。

008.jpg

  鏈表中,每個(gè)節(jié)點(diǎn)的結(jié)構(gòu)如下:

  typedef struct

  {

  intLocation_Level[3];

  char*Item_Name;

  Menu_Item* Next;

  } Menu_Item;

  其中,Location_Level[3]表示當(dāng)前節(jié)點(diǎn)的位置。Location_Level[0]的值代表此節(jié)點(diǎn)在主菜單的第幾項(xiàng);Location_Level[1]的值代表此節(jié)點(diǎn)在二級(jí)子菜單的第幾項(xiàng);Location_Level[2]代表此節(jié)點(diǎn)在三級(jí)子菜單的第幾項(xiàng)。

  Item_Name表示當(dāng)前節(jié)點(diǎn)名稱。在顯示時(shí)會(huì)根據(jù)對(duì)應(yīng)節(jié)點(diǎn)打印出此字符串。

  Next指向下一節(jié)點(diǎn)的指針。

  比如,圖8中的二級(jí)子菜單中的項(xiàng)目“年設(shè)置”,其Location_Level[0]=1,代表其隸屬于主菜單的“設(shè)定時(shí)間”項(xiàng);Location_Level[1]=1,代表其隸屬于二級(jí)菜單的“年設(shè)置”項(xiàng);Location_Level[2]=0,代表其止于二級(jí)菜單,沒有進(jìn)入三級(jí)菜單。其Item_Name=“年設(shè)置”;Next指向“年設(shè)置”節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)。

  用鏈表設(shè)計(jì)菜單的優(yōu)點(diǎn)在于,無論在菜單的什么位置添加項(xiàng),都可以直接添加在鏈表的尾部。因?yàn)槎ㄎ划?dāng)前節(jié)點(diǎn)位置靠的是當(dāng)前節(jié)點(diǎn)的Location_Level[3]中的3個(gè)變量,在菜單級(jí)數(shù)較少時(shí),靠鏈表遍歷就足夠了。

  3.2.2按鍵的響應(yīng)

  按鍵的檢測(cè)是在中斷函數(shù)中完成的。中斷處理函數(shù)僅完成按鍵序號(hào)的確認(rèn),而按鍵處理函數(shù)是在中斷外實(shí)現(xiàn)的。本系統(tǒng)的按鍵有4個(gè),分別為“向前”,“向后”,“確認(rèn)”,“返回”,對(duì)應(yīng)標(biāo)識(shí)號(hào)依次為1、2、3、4。

  按鍵處理的思路是:中斷檢測(cè)出當(dāng)前按下的是哪個(gè)按鍵,然后根據(jù)當(dāng)前指針指向的節(jié)點(diǎn)來確定要完成的動(dòng)作。如圖9所示。

009.jpg

  假設(shè)當(dāng)前指針指向菜單項(xiàng)“設(shè)定時(shí)間”,則Location_Level[3]={1,0,0},說明當(dāng)前節(jié)點(diǎn)處于主菜單的第一項(xiàng)。如果此時(shí)“確認(rèn)”按鍵被按下,那么按鍵處理函數(shù)從表中找到此時(shí)位置對(duì)應(yīng)動(dòng)作。假設(shè)此動(dòng)作為“進(jìn)入二級(jí)菜單”,則指針會(huì)跳轉(zhuǎn)到Location_Level[3]={1,1,0}的位置,同時(shí)在屏幕上刷新出二級(jí)菜單。其他3個(gè)按鍵的響應(yīng)與此類似。

010.jpg

  3.3定時(shí)時(shí)間的設(shè)定

  定時(shí)時(shí)間設(shè)定是在按鍵響應(yīng)函數(shù)中實(shí)現(xiàn)的。程序流程圖如圖10所示。

  1.2.2節(jié)介紹過,DS1302時(shí)鐘芯片內(nèi)部有31 B的RAM寄存器,可用于存放臨時(shí)數(shù)據(jù)。由于市電定時(shí)開關(guān)系統(tǒng)需要保證在系統(tǒng)掉電后,配置數(shù)據(jù)不會(huì)丟失,從而在再次上電時(shí)依舊可用。所以,本系統(tǒng)使用了DS1302的臨時(shí)數(shù)據(jù)寄存器作為配置數(shù)據(jù)的保存位置。由于DS1302有備用電源,配置數(shù)據(jù)不會(huì)因掉電而丟失。

  3.4傳感器的數(shù)據(jù)處理

  考慮到應(yīng)用場(chǎng)景的不同,系統(tǒng)給出了8位GPIO擴(kuò)展接口,可用于各種數(shù)字傳感器的擴(kuò)展,如溫濕度傳感器、液位圖11傳感器數(shù)據(jù)處理流程圖傳感器、光強(qiáng)傳感器等。傳感器數(shù)據(jù)處理流程圖如圖11所示。

011.jpg

  以光強(qiáng)傳感器為例。設(shè)光照強(qiáng)度標(biāo)志為L(zhǎng)ight_Flag,定時(shí)器的標(biāo)志為Time_Flag,則傳感器與定時(shí)時(shí)間標(biāo)志變量關(guān)系表如表1。 表1傳感器與定時(shí)時(shí)間標(biāo)志變量表 01Light_Flag環(huán)境光照度低于某閾值環(huán)境光照度高于某閾值Time_Flag當(dāng)前時(shí)間處于設(shè)定時(shí)間內(nèi)當(dāng)前時(shí)間處于設(shè)定時(shí)間外

  如果被控電器為照明電路,要求“在設(shè)定時(shí)間段內(nèi),當(dāng)光照度低于某閾值時(shí),照明電路被開啟”,則偽代碼如下:

  if((Light_Flag&& Time_Flag)==1)

  {打開繼電器;}

  else

  {關(guān)閉繼電器;}

  同理,液位傳感器、溫度傳感器等的數(shù)據(jù)都可以采用這種處理思路。

  4測(cè)試效果

  測(cè)試中使用了3個(gè)定時(shí)時(shí)間段,并觀察繼電器的通斷狀態(tài)。

  如圖12中主菜單界面所示,共有3個(gè)選項(xiàng),可通過屏幕下方的按鍵實(shí)現(xiàn)光標(biāo)的上下移動(dòng)以及選擇、取消等功能;右圖為實(shí)時(shí)時(shí)鐘設(shè)置界面,通過按鍵實(shí)現(xiàn)從年到秒的選擇。

  

012.jpg

  圖13左為定時(shí)時(shí)間設(shè)置界面。共有四個(gè)時(shí)間段可以配置。當(dāng)配置完畢后,回到主菜單,進(jìn)入“TIME DISPLAY”子菜單,便可看到右圖的效果。可以看到,時(shí)間顯示界面除了顯示當(dāng)前時(shí)間外,還用不同的箭頭表示出了定時(shí)時(shí)間段。舉例來說,對(duì)于定時(shí)時(shí)間1(7:40~9:00),對(duì)應(yīng)右圖的純黑色箭頭(黑框之內(nèi))所指時(shí)間段,可以從時(shí)間軸上非常清晰地顯示出來。

  

013.jpg

  當(dāng)前時(shí)間如果落在任何一段設(shè)定時(shí)間內(nèi),則繼電器吸合,其指示燈亮起。

5結(jié)束語

  本系統(tǒng)界面簡(jiǎn)潔,操作方便,可適用于大多數(shù)家用電器。經(jīng)實(shí)際測(cè)試,系統(tǒng)用于定時(shí)照明場(chǎng)景,持續(xù)工作兩周未出現(xiàn)異常。

參考文獻(xiàn)

 ?。?] 陳致遠(yuǎn),朱葉承,周卓泉,等.一種基于STM32的智能家居控制系統(tǒng)[J].電子技術(shù)應(yīng)用,2012,38(9):138140.[2] 張逢雪,王香婷,王通生,等.基于STM32單片機(jī)的無線智能家居控制系統(tǒng)[J].自動(dòng)化技術(shù)與應(yīng)用,2011,30(8):98101.

  [3] 徐端全.嵌入式系統(tǒng)原理與設(shè)計(jì)[M].北京: 北京航空航天大學(xué)出版社,2009.

 ?。?] 李寧.基于MDK的STM32處理器開發(fā)應(yīng)用[M].北京: 北京航空航天大學(xué)出版社,2008.


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