基于Atmega16單片機的智能空調遙控器
現有的紅外遙控器很多都是采用外部電路產生載波信號,例如使用NEC555 振蕩器產生載波信號。為了減少硬件開銷,本系統使用單片機內部的定時器產生載波。系統使用的是Atmega16 單片機,其定時器功能強大,具有普通模式、CTC 模式、快速PWM 模式、相位修正PWM 模式等工作模式,系統利用定時器1,使其工作在快速PWM 模式,產生占空比為1:3 的38KHz 的PWM 波。當發送某條指令時,單片機從對應的EEPROM 中提取指令信息,然后調制到生成的載波上,再通過發射電路即可完成紅外信號的發射。
3.3 通信功能設計
3.3.1 上位機通信
本遙控器除了能通過功能按鍵實現手動操作外,還可以通過上位機軟件對遙控器進行控制。遙控器與上位機通過RS232 模塊進行通信,首先配置上位機軟件,確定串口號,選擇與設備相同的波特率及主從設備地址,然后根據需要選擇相應的指令,點擊發送即可通過上位機對設備進行控制。由于本遙控器是基于空調遙控器進行研究的,在與上位機通信時,系統中的溫度檢測模塊會上傳實時溫度,便于用戶進行調整。圖6 為上位機軟件流程圖。
圖6 上位機軟件流程圖。
3.3.2 組網控制
為了實現對多個設備的聯網控制,還設計了RS485 模塊。各子遙控器通過RS485 模塊的"A"、"B"端連接在一起,組成控制網絡,如圖7 所示,其中一個作為主遙控器,與上位機通過RS232 模塊進行串口通信。當上位機需要對某個子設備進行控制時,選擇相應的子設備地址號,發送指令即可,主遙控器收到指令信息后,會將指令發給對應的子設備。與主遙控器相連的上位機PC 連接Internet,作為本地服務器,可實現遠程控制。
用戶登錄遠程客戶端,經身份驗證后與服務器建立連接,可發送指令給本地服務器,本地服務器再經過串口通信對遙控器進行相應操作。如果遙控器主機與上位機距離較遠,RS232 不能滿足通信需要,也可不使用遙控器主機,在上位機PC 上使用RS232-485 轉接頭,通過RS485 直接將遙控器網絡與PC 機485 接口相連,利用上位機對遙控器網絡直接進行控制。
圖7 控制網絡示意圖。
4 結語
本文設計了一款智能空調遙控器。該系統采用只記錄紅外信號脈沖寬度,不考慮紅外編碼格式的方式,通過游程編碼算法將紅外信號壓縮后保存到EEPROM 中,并直接利用主控芯片定時器的PWM 模式產生38KHz 的載波,節約了硬件成本,除手動操作外還可以通過上位機對遙控器進行控制,使用方便。
系統成功實現了對多種空調遙控器的學習與功能再現,操作靈活,性能穩定,已成功運用于深圳中聯通電子有限公司的機房空調的控制。本系統還可用于智能家居中,對不同的紅外設備進行控制,也可用于遠程網絡控制,為智能家居及遠程監控提供了一種實現方法。
參考文獻:
[1].Atmega16 datasheethttp://www.dzsc.com/datasheet/Atmega16+_144718.html.
[2].RS232datasheethttp://www.dzsc.com/datasheet/RS232_585128.html.
[3].RS485 datasheethttp://www.dzsc.com/datasheet/RS485+_585289.html.
[4].TTL datasheethttp://www.dzsc.com/datasheet/TTL+_1174409.html.
[5].DS18B20 datasheethttp://www.dzsc.com/datasheet/DS18B20+_819975.html.
[6].L7805 datasheethttp://www.dzsc.com/datasheet/L7805+_1971345.html.
[7].PC datasheethttp://www.dzsc.com/datasheet/PC+_2043275.html
評論