《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 電源技術(shù) > 設(shè)計(jì)應(yīng)用 > 市電定時(shí)開關(guān)系統(tǒng)設(shè)計(jì)
市電定時(shí)開關(guān)系統(tǒng)設(shè)計(jì)
2016年微型機(jī)與應(yīng)用第08期
郝沛,,黃魯
(中國科學(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 :

  郝沛,黃魯

 ?。ㄖ袊茖W(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)提供,。控制系統(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沒有集成字庫,,所以需要把ASICII字庫嵌入到代碼中去。

2系統(tǒng)硬件

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

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

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

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

  (4)時(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上,以中斷方式輸入,。

 ?。?)繼電器驅(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,。 

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)

  [1] 陳致遠(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)載。