賈海云


摘要:隨著人們對美好生活的向往,越來越多的人追求舒適便捷的生活方式,智能家居也越來越受到人們的歡迎。室內采光避光成為人們重點關注的對象,光線調節的傳統手段就是手動控制窗簾和利用照明系統。本設計采用STC89C52單片機、步進電機、光敏電阻實現智能窗簾的控制,該控制系統可依據光線強弱實現窗簾自動拉開或合攏,也可以通過開關和設定時間控制窗簾的狀態,同時利用時鐘芯片DS1302提供時鐘,并通過液晶顯示器LCD1602顯示日期和光照強度。
關鍵詞:STC89C52單片機;步進電機;智能窗簾;時鐘芯片DS1302;液晶顯示器LCD1602
中圖分類號:TP391? ?文獻標識碼:A
文章編號:1009-3044(2021)10-0202-03
1概述
隨著社會的發展,人類的物質文明和精神文明都有了很大的飛躍,人們越來越追求高品質的生活和宜人的環境。為了滿足人們生產生活的需求,科技領域也發生了日新月異的變化,朝著智能化的方向邁進,人工智能的發展也如火如荼。智能家居理念應運而生,契合人們對高質量生活的向往,已是當下最熱門的研究熱點之一。智能照明系統是智能家居重要的一部分,室內光線的調節與窗簾密切相關。傳統的照明系統依賴于陽光、燈光和窗簾。傳統的窗簾是手動的,有些場所的窗簾寬大厚重,手工拉動極不方便。
本文設計了能夠實現窗簾智能化的控制系統,旨在為人們提供舒心的生活環境。該系統以STC89C52單片機為核心,結合步進電機、液晶顯示器LCD1602、時鐘芯片DS1302等器件,完成窗簾的智能控制。本設計可以實現的功能包括:年月日時分秒的實時顯示、光照強度的采集和調整、控制模式的調節、手動控制窗簾的開啟和關閉;設置開啟和關閉時間來控制窗簾、檢測光照強度的亮暗來控制窗簾。
2硬件電路設計
整個控制系統采用5V的電源供電,控制的核心元件是STC89C52單片機,結合晶體振蕩器、電阻、電容等元件完成單片機最小系統的搭建。配置液晶顯示器LCD1602為時間、溫度的顯示設備;時鐘芯片DS1302作為時鐘模塊由單片機讀取其時間信息;光敏電阻和模數轉換芯片ADC0832組成光照檢測電路;步進電機模擬窗簾的拉開和合攏;單個發光二極管的亮滅表示當前窗簾的啟閉狀態;若干按鍵調整實施時間、窗簾的開關時間和光照強度的閾值。電路原理圖如圖1所示。
2.1 液晶顯示電路
液晶顯示器電路的核心元件是LCD1602。它可以顯示32個字符,是一種便攜式的顯示器。在本設計中,它的8個數據端D0-D7通過上拉電阻與單片機的P0口相接;4號引腳是液晶的寄存器控制引腳,與單片機的P1.3引腳相接;5號引腳是液晶的讀寫控制端,與單片機的P1.4引腳相接;6號引腳是使能引腳,與單片機的P1.5引腳相接。
2.2 時鐘電路
時鐘電路的核心元件是時鐘芯片DS1302,它是一款低功耗的實時時鐘芯片,性價比高,具有串行數據傳輸、掉電保護等功能。DS1302共有8個引腳,1號引腳Vcc2接5V電源Vcc;4號引腳接地GND;8號引腳Vcc1接3v的電池作為備用電源;2號引腳和3號引腳是振蕩源,之間接入一個振蕩頻率為32.768KHz的晶體振蕩器;5號引腳RST是復位端,與單片機的P1.2引腳相接;6號引腳I/O是數據傳輸端,與單片機的P1.1引腳相接;7號引腳SCLK是時鐘輸入端,與單片機的P1.0引腳相接。
2.3 光照強度采集電路
光照強度采集電路由光敏電阻器和模數轉換器ADC0832組成,實現環境中光照強度的采集。光敏電阻器是一種利用半導體的光電效應做成的器件,其電阻值的變化隨光照強弱而變化。ADC0832可實現8路的模數轉換,光敏電阻的阻值通過ADC0832通道CH0進行模數轉換。光敏電阻器的一端接ADC0832的2號引腳CH0通道。ADC0832的1號引腳片選端與單片機的P1.6引腳相接,5號引腳和6號引腳數據輸入輸出一起接單片機的P3.2引腳;7號引腳時鐘端接單片機的P1.7引腳。
2.4 步進電機驅動電路
步進電機驅動電路的核心元件是步進電機。它可以將電脈沖信號轉換為角位移或線位移,從而驅動步進電機轉動一個精準的步距腳來控制窗簾移動的位移。由于單片機的輸出電流小,不能直接驅動步進電機,故通過一個大電流驅動芯片ULN2003與步進電機相連。
2.5 按鍵輸入電路
按鍵輸入電路的核心元件是鍵盤,設計中按鍵電路比較簡單,采用獨立式鍵盤。5個按鍵的功能分別是“切換模式”“時間設置”“閾值設置”“減”“加”。模式設置有定時模式、手動模式和光控模式;時間設置可以校準年月日時分秒;設置閾值可以調整開啟和關閉時間;加減按鈕用來調整時間。
3程序設計
3.1控制系統的工作流程
本設計先初始化液晶顯示器和時鐘芯片,讀取當前時間、光照強度并顯示出來。通過按鍵設置不同的3種工作模式控制窗簾的狀態,分別是定時模式、光控模式和手動模式。因此,程序設計涉及液晶顯示器初始化、時鐘芯片初始化、按鍵掃描等,流程圖如圖2所示。
3.2液晶顯示器LCD1602初始化
液晶顯示器上電時的初始化涉及清屏、工作方式設置、顯示狀態設置、輸入方式設置、光標定位等。初始化完成后,按照操作時序圖完成寫命令操作、寫數據操作。液晶顯示器從單片機P0口讀取數據,顯示當前日期、時間、工作模式和光照強度。
3.3時鐘芯片初始化
實時時鐘芯片DS1302可提供年月日時分秒等信息,單片機按照DS1302的操作時序讀取其時間信息,并發送到液晶顯示器上的顯示。具體的流程是寫入年份寄存器地址0x8D,讀取年份數據;再寫入0x87讀取月份信息;再寫入0x8B讀取日期信息。以此類推,依次讀取時分秒信息。
3.4按鍵掃描
按鍵掃描程序中通過軟件消抖的方法去除抖動,然后讀取按鍵的狀態。如果檢測到有按鍵按下,則根據不同的按鍵執行相應的程序。如選擇手動模式,則根據開窗簾鍵和關窗簾鍵對窗簾進行控制;如選擇定時模式,就根據設置的開啟時間和關閉時間對窗簾進行控制;如選擇光控模式,則判斷當前光照是否高于設置的控制閾值,高于閾值關閉窗簾,否則開啟窗簾。
4 測試與結果分析
硬件電路搭建借助Proteus仿真平臺,電路設計完畢后,在Keil4中編寫控制程序,編譯調試程序直至生成.hex文件。由于控制模塊比較多,程序復雜,在調試過程中進行模塊化調試。調試結果如圖1所示,液晶顯示器能顯示當前日期、時間、工作模式和光照強度,系統通過調整光敏電阻的阻值表示光照強度發生了變化,液晶顯示器顯示實時溫度。當光照強度超過閾值的上限或下限時,步進電機正轉和反轉控制窗簾的拉開和閉合。另外,可以通過按鍵可以進行閾值的設置、模式的切換和時間的調整。
5 結論
本控制系統的設計以STC89C52單片機為核心,利用光敏電阻模擬室內的光照強度,以步進電機的正反轉模擬窗簾的開合狀態,液晶顯示器LCD1602顯示單片機從時鐘芯片DS1302讀取的時間信息,借助Proteus仿真平臺和Keil編程軟件實現了智能窗簾的設計,經過運行調試,符合設計要求。
參考文獻:
[1] 王春武,劉春玲,姜文龍,等.基于單片機的無線智能窗簾控制器的設計[J].吉林師范大學學報(自然科學版),2010,31(1):93-95.
[2] 郝海燕,董勝豪.基于單片機的智能窗簾系統設計[J].科技風,2020(9):10.
[3] 王麗杰.基于AT89C51單片機的智能窗簾控制系統[J].電腦迷,2017(6):85-86.
[4] 王孝尚.基于STM32的智能窗簾控制系統設計與實現[J].電子世界,2017(17):188.
[5] 楊雅涵,于佐軍.基于單片機的溫控光控智能窗簾設計[J].控制工程,2016,23(10):1542-1545.
[6] 衛奧琛,韓利凱.基于單片機的智能控制窗簾設計[J].科技廣場,2017(9):190-192.
【通聯編輯:梁書】