陳子杰 黃雄華 郭啟麟
摘要:有線燈具在安裝上需要布置電線、安裝開關,還要進行線槽安裝等施工采用紅外傳感器進行數據傳輸,利用ATMEGA328P-PU處理器實現數據處理和智能控制。實驗表明,設計的無線燈具系統,能很好地實現無線遙控功能。
關鍵詞:無線遙控燈;Arduino;紅外傳感器
中圖分類號:TP18 文獻標識碼:A
文章編號:1009-3044(2019)08-0227-02
Design of Wireless Remote Control Lamp based on Arduino
CHEN Zi-jie, HUANG Xiong-hua, GUO Qi-lin
(School of Information Science and Engineering, Shaoguan College, Shaoguan 512005, China)
Abstract: Wired luminaires need to be equipped with wires, installation switches, Based on the Arduino system, this paper designs an intelligent remote control luminaire processor to realize data processing and intelligent control. Experiments show that the
Key word:Wireless remote control light; Arduino; Infared sensor
1 概述
紅外通訊是以紅外光線為通訊載體,通過紅外發射模塊與紅外接收模塊來傳輸數據從而完成通訊功能完成通訊功能。在紅外發射模塊,紅外發射二極管通過數字編碼的調制,將電信號轉化為光信號發射到空氣中。在紅外接收模塊,紅外接收器接收到光信號后,通過電路的譯碼器解碼譯碼,從而把光信號轉化為電信號并做出下一步操作。
傳統的燈具開關,基本上是有線開關,需要安裝在墻體上,通過電線連接在燈具系統上,實現燈具的控制,使用者需要付出的成本包括開關自身、連接電線、相關的線槽等材料以及人工安裝費,成本高,從開關、線路到燈具,鏈條長,損毀后檢修等大多需要專業人員,維護成本高。為降低成本,提高使用的便利,本文基于Arduino系統,使用紅外通訊設計一款無線燈具控制系統,遙控開關具有通用性,燈具控制部分也模塊化設計,損壞后拔插即可更換,降低維護難度。
2 基于arduino的無線遙控燈設計
2.1 無線遙控燈功能介紹
基于arduino的無線遙控燈具系統分遙控信號發送部分和信號接收控制部分。信號發送部分利用ATMEGA328P-PU處理器以及紅外傳感器進行數據采集,處理。當按下遙控器上的按鈕時,紅外發射管發射該按鍵對應的紅外脈沖,與燈具連接的紅外接收器接收到信號時,燈具開啟。
2.2 遙控信號傳輸機理
制作本產品所使用的紅外傳感器分為紅外發射頭以及紅外接收頭。紅外接收頭型號有很多,例如HS0038 VS838等,功能大致相同只是引腳封裝不同。本次用到的紅外傳感器為VS838,紅外發射管所發射的編碼是通過單片機快速不斷變化高低電頻所發出的,高低電平變化的速度會改變紅外發射管所發射的信號。現有的紅外遙控大部分使用的方式為脈沖位置調制(PPM)和脈沖寬度調制(PWW),這兩種形式的編碼的代表分別是NEC和PHLIPS的RC.5。其余的還有PHLIPS的RC.6以及SONY。無線燈具使用標準為NEC標準。
NEC標準:遙控載波的頻率為38KHz(占空比1:3)當某個鍵按下時,系統首先發射一個完整的全碼,如果按鍵超過108ms仍未松開,接下來發射的代碼(連發代碼)將由起始碼(9ms)和結束碼(2.5ms)組成。
全碼 = 引導碼 +用戶碼 + 數據碼 + 數據反碼,其結構如圖1所示。
紅外發射管為紅外發光二極管,能夠根據需求通過改變電壓頻率發出不同的紅外線。
3 電路設計
3.1 無線遙控燈接收電路
在電路設計中燈具控制部分ATMEGA328P-PU處理器對紅外線接受后對繼電器的處理電路,原理圖如圖2所示。
3.2 無線遙控燈遙控電路實現
在電路設計中燈具遙控部分,一個遙控器可以控制4個無線燈具的開啟與關閉,在紅外發射電路中,使用自鎖開關來代替傳統的按鈕,按下按鈕時,通過不斷向外發出該按鈕所對應頻率的紅外線,來減少發射的紅外線不被紅外接收器識別的情況。
4 代碼實現
4.1 無線遙控燈接收模塊關鍵代碼
digitalWrite(led_state,HIGH);//將pin8上的發光二極管關閉
if (irrecv.decode(&results)) { //判斷是否接收到了紅外信號
if(results.value ==0xFF7A85)//判斷紅外信號是否匹配
{
digitalWrite(led_state,HIGH);//開啟發光二極管
digitalWrite(led_pin, HIGH);//開啟無線遙控燈,
}
irrecv.resume();//接受下一個紅外信號
}
4.2 無線遙控燈發射模塊關鍵代碼
if(digitalRead(button1)==LOW)//判斷按鍵是否被按下
{
irsend.sendNEC(0xFF7A85, 32);//發送對應頻率的紅外線
delay(2000);//延時
}
5 結語
本文講述了在物聯網浪潮中智能遙控燈的設計總體流程方案,其中重點闡述了該智能系統實例的框架構建、技術選型以及功能實現。產品目前可完成基本智能化電燈控制功能,后期將擴展更多市場需求功能,逐步實現系統優化,進而投入市場。
參考文獻:
[1]Micbael Margolis. Arduino權威指南[M].第2版,楊昆云譯,人民郵電出版社,2015(3):305-316.
[2]蔣俊峰.基于單片機的紅外通訊設計[J].電子設計應用,2003(11):60-62.
[3] 劉西洋.信號燈紅外無線遙控系統設計[J].機器視覺,2018:73-76.
【通聯編輯:梁書】