基于單片機(jī)的的智能晾衣系統(tǒng)設(shè)計(jì)
摘要 隨著社會(huì)經(jīng)濟(jì)水平的發(fā)展,現(xiàn)在人們的生活追求個(gè)性化、自動(dòng)化,追求快節(jié)奏,追求充滿樂趣的生活方式,家裝要求的檔次越來越高,生活家居人性化、智能化的要求使智能控制技術(shù)在智能家居電子產(chǎn)品中得到了廣泛應(yīng)用,伴隨著智能家居的快速發(fā)展,晾衣工具的智能化發(fā)展明顯落后與其他家用器具智能化發(fā)展之后,現(xiàn)在己經(jīng)引起社會(huì)的很大關(guān)注。本文檔為了把握市場(chǎng)動(dòng)態(tài),順應(yīng)時(shí)代主題,設(shè)計(jì)并實(shí)現(xiàn)了智能晾衣架系統(tǒng)。 采用單片機(jī)進(jìn)行采集光照、雨滴兩個(gè)外部天氣信號(hào),并通過單片機(jī)控制旋轉(zhuǎn)衣架,旋轉(zhuǎn)衣架通過步進(jìn)電機(jī)進(jìn)行調(diào)節(jié),當(dāng)外部天晴,且無雨時(shí),將衣架轉(zhuǎn)出,晾曬衣物;當(dāng)下雨或者沒有陽光時(shí),轉(zhuǎn)回室內(nèi),防止被雨打濕,或者天已黑。其中光照傳感器采用光敏電阻,雨滴傳感器采用LY-69雨滴檢測(cè)傳感器,控制硬件采用步進(jìn)電機(jī),按鍵電路設(shè)定光照和雨滴的閾值,5110液晶顯示感測(cè)量和設(shè)定值,及工作狀態(tài)。 通過設(shè)計(jì)和實(shí)驗(yàn)調(diào)試完成了基于單片機(jī)的智能晾衣系統(tǒng)。
目錄 1 引言 1.1 課題研究背景與意義 1,2 國內(nèi)外研究現(xiàn)狀 1.3 課題研究內(nèi)容 2 基于單片機(jī)的的智能晾衣系統(tǒng)的硬件設(shè)計(jì) 2.1 整體設(shè)計(jì)框圖 2.2 光照傳感器 2.3 雨滴傳感器 2.4 衣架位置傳感器 2.5 STM32控制器 2.6 步進(jìn)電機(jī)驅(qū)動(dòng)電路 2.7 液晶顯示屏 2.8 按鍵電路 3 基于單片機(jī)的的智能晾衣系統(tǒng)的軟件設(shè)計(jì) 3.1 系統(tǒng)分析 3.2 軟件算法 3.3 軟件容錯(cuò)處理 4 實(shí)驗(yàn)調(diào)試 5 結(jié)論與展望 參考文獻(xiàn) 致謝 附頁1
1 引言隨著社會(huì)經(jīng)濟(jì)水平的發(fā)展,現(xiàn)在人們的生活追求個(gè)性化、自動(dòng)化,追求快節(jié)奏,追求充滿樂趣的生活方式,家裝要求的檔次越來越高,生活家居人性化、智能化的要求使智能控制技術(shù)在智能家居電子產(chǎn)品中得到了廣泛應(yīng)用,它不僅優(yōu)化人們的生活方式和居住環(huán)境,而且方便人們有效地安排時(shí)間和節(jié)約各種能源,實(shí)現(xiàn)了家電、照明、窗簾控制和防盜報(bào)警、定時(shí)控制及電話遠(yuǎn)程控制等。伴隨著智能家居的快速發(fā)展,晾衣工具的智能化發(fā)展明顯落后與其他家用器具智能化發(fā)展之后,現(xiàn)在己經(jīng)引起社會(huì)的很大關(guān)注。本文檔為了把握市場(chǎng)動(dòng)態(tài),順應(yīng)時(shí)代主題,設(shè)計(jì)并實(shí)現(xiàn)了智能晾衣架系統(tǒng)。 1.1 課題研究背景與意義基于現(xiàn)在晾衣架發(fā)展現(xiàn)狀,本設(shè)計(jì)開發(fā)了一種能幫助人們擺脫原始操作的智能晾衣架。本新型晾衣架主要特點(diǎn)在于:可以伸縮,操作簡(jiǎn)單,占地面積小,美觀實(shí)尸構(gòu)優(yōu)點(diǎn)。同類產(chǎn)品雖有可收縮式的,但屬組裝而成,操作比較麻煩,而本晾才架只需按下打開按鍵,衣架桿即可自動(dòng)伸展開來。同時(shí)晾衣架能識(shí)別晴雨天氣一自動(dòng)完成收衣服功能的目的。晴雨智能晾衣架能有效地避免在下雨時(shí),衣服無人收起而被雨淋濕;或在天色變晚時(shí),衣架能自動(dòng)收回,避免衣服在外面過夜。 1,2 國內(nèi)外研究現(xiàn)狀在中國各大中城市以及農(nóng)村普遍是將衣物晾曬于陽臺(tái)內(nèi)部或外部,而傳統(tǒng)的晾曬衣物方式是陽臺(tái)內(nèi)天花板下設(shè)置有鋼筋掛鉤,鉤卜通常是掛有竹桿或其它桿體。人們通常習(xí)慣于用一支撐桿將衣物支撐到晾衣桿晾曬,這樣晾曬衣物費(fèi)時(shí)費(fèi)力,而且布置鋼筋及竹桿與當(dāng)今現(xiàn)代化建筑結(jié)構(gòu)的陽臺(tái)也不搭配、有失雅觀。另外,家庭通常大都是老人晾衣物,因此,傳統(tǒng)的支撐曬衣、收衣不僅是費(fèi)神費(fèi)力,而目.容易扭傷筋胃·或支撐不順扎傷人體。正因傳統(tǒng)晾曬衣方式有眾多的不便,后出現(xiàn)手搖晾衣架,手搖晾衣架改變了支撐晾衣架的傳統(tǒng)習(xí)慣,同時(shí)也給眾多家庭帶來了更多的方便。但手搖晾衣架需設(shè)置多個(gè)機(jī)械裝置和支撐點(diǎn),同時(shí)需多根網(wǎng)線布置來帶動(dòng)其晾衣桿上下升降。由幾支撐點(diǎn)及多根網(wǎng)線的布置,手搖式晾衣架給原本漂亮的陽臺(tái)增添了不美的因素。其次,手搖晾衣架的升降每次都要人工轉(zhuǎn)換接頭,目.需要人力搖動(dòng)慢慢將桿升降,若晾桿承載的衣物重量過大,搖上去既費(fèi)力又容易傷手。因此,手搖晾衣架雖然改變傳統(tǒng)支撐晾衣的不便,但沒有徹底改變費(fèi)神費(fèi)力的根本狀態(tài)。人們期望著一種更方便更美觀的新型晾衣架的出現(xiàn)。 1.3 課題研究內(nèi)容基于單片機(jī)的的智能晾衣系統(tǒng)設(shè)計(jì),需要采用單片機(jī)作為控制中心,實(shí)現(xiàn)自動(dòng)晾衣的功能,并根據(jù)具體情況進(jìn)行相應(yīng)的調(diào)整,具體性能和指標(biāo)如下: - 智能晾衣桿全自動(dòng)工作,可實(shí)現(xiàn)無人操控
(2)晾衣桿只有兩個(gè)位置,伸出去,縮回來
(3)位置檢測(cè):晾衣桿伸出去時(shí),到達(dá)指定位置能夠停下來
(4)軟件容錯(cuò)處理:晾衣桿伸縮過程中遇到各種障礙,能夠通過軟件容錯(cuò)處理來停止
(5)光敏傳感器:天黑時(shí)候?qū)⒁路栈貋恚炝習(xí)r候或者陽光猛烈的時(shí)候伸出去晾曬
- .雨滴傳感器:下雨的時(shí)候?qū)⒁路栈貋?/font>
(7)參數(shù)靈敏度調(diào)節(jié)(動(dòng)態(tài)設(shè)置):按鍵+液晶顯示
(8)供電:5V電源供給單片機(jī)、電機(jī)
2 基于單片機(jī)的的智能晾衣系統(tǒng)的硬件設(shè)計(jì)采用單片機(jī)進(jìn)行采集光照、雨滴兩個(gè)外部天氣信號(hào),并通過單片機(jī)控制旋轉(zhuǎn)衣架,旋轉(zhuǎn)衣架通過步進(jìn)電機(jī)進(jìn)行調(diào)節(jié),當(dāng)外部天晴,且無雨時(shí),將衣架轉(zhuǎn)出,晾曬衣物;當(dāng)下雨或者沒有陽光時(shí),轉(zhuǎn)回室內(nèi),防止被雨打濕,或者天已黑。 2.1 整體設(shè)計(jì)框圖 控制總體款圖如下圖2.1所示,通過光照傳感器和雨滴傳感器感知外部天氣的光照和雨滴情況,按鍵設(shè)定光照和雨滴的閾值,衣架位置傳感器采集衣架所在位置,最后單片機(jī)驅(qū)動(dòng)步進(jìn)電機(jī),將衣架來回于室內(nèi)室外。 
圖2.1 總體設(shè)計(jì)款圖 2.2 光照傳感器為了對(duì)外部光照強(qiáng)度的測(cè)量,文檔采用光敏電阻對(duì)光照進(jìn)行測(cè)量,如圖2.2.1所示光敏電阻,此光敏電阻是負(fù)參數(shù)的光敏電阻,也就是說光照增強(qiáng)后電阻阻減小,我們通過實(shí)驗(yàn)測(cè)量得到光敏電阻的電子變化范圍在幾百歐姆到幾兆歐姆之間變化,當(dāng)光強(qiáng)度很大時(shí),光敏電阻的阻值可達(dá)幾百歐姆,當(dāng)在黑暗的環(huán)境中時(shí),測(cè)量光敏電阻兩端的阻值,可達(dá)幾兆歐姆的電阻。 圖 2.2.1 光敏電阻 為了實(shí)現(xiàn)與光敏電阻的阻值想匹配的電阻,我們采用10K的電阻進(jìn)行上拉電阻。通常情況下,光敏電阻的阻值在千歐姆上,所以當(dāng)光照強(qiáng)度很大時(shí),光敏電阻的阻值很小,進(jìn)行圖2.2.2電路后輸出的信號(hào)就是很小的電壓信號(hào);當(dāng)光照強(qiáng)度很小時(shí),即黑暗情況下,光敏電阻的阻值很大,進(jìn)行圖2.2.2電路后輸出的信號(hào)就是接近供電電源的電壓3.3V。在電壓信號(hào)輸出后,采用104電容進(jìn)行濾波,已得到更平滑的信號(hào)波形,方便單片機(jī)對(duì)信號(hào)的處理,不會(huì)因?yàn)楣庹盏牟环(wěn)定,而導(dǎo)致誤判。 圖2.2.2 光照測(cè)量電流 2.3 雨滴傳感器雨滴傳感器又叫雨滴檢測(cè)傳感器,用于檢測(cè)是否下雨及雨量的大小,如圖2.3.1所示。雨滴傳感器的種類有:(1)根據(jù)雨滴沖擊能量的變化進(jìn)行檢測(cè);(2)利用靜電電容量變化進(jìn)行檢測(cè);(3)利用光亮變化進(jìn)行檢測(cè)。 本文檔采用的圖2.3.1雨滴傳感器檢測(cè)雨滴,當(dāng)雨滴滴到檢測(cè)極板上時(shí),檢測(cè)極板的電阻就會(huì)發(fā)生變化,通過上拉電阻就可以檢測(cè)極板輸出的電壓變化。 圖2.3.1 雨滴傳感器 如圖2.3.3所示的是雨滴傳感器的電路圖,通過上拉10K電阻將雨滴傳感器的電阻變化得到電壓變化,最后通過運(yùn)放實(shí)現(xiàn)信號(hào)的調(diào)理,還有LED的指示可以清楚的了解電路工作情況。 圖2.3.2 雨滴傳感器電路 2.4 衣架位置傳感器為了識(shí)別衣架位置,我們采用紅外傳感器進(jìn)行判斷衣架的位置,當(dāng)衣架運(yùn)動(dòng)到紅外傳感器可以檢測(cè)的范圍內(nèi)時(shí),紅外傳感器就輸出一個(gè)變化的信號(hào),通過單片機(jī)讀取后就知道衣架現(xiàn)在運(yùn)動(dòng)到什么位置了。實(shí)物圖如圖2.4.1所示。 
圖2.4.1 紅外檢測(cè)傳感器 如圖2.4.2所示,三極管Q采用9013小功率三極管,單片機(jī)通過IO口驅(qū)動(dòng)三極管的b極,通過1K電阻進(jìn)行限流,防止電流過大燒毀三極管和單片機(jī)。 紅外接收管的工作功率為75mW,開啟電壓0.39V,為了實(shí)現(xiàn)接收,采用如圖2.4.3所示,NE5532運(yùn)放作為電壓跟隨器跟隨接收管上電壓的變化,單片機(jī)通過IO口中斷讀取數(shù)據(jù),通過10K電阻進(jìn)行限流,防止電流過大燒毀三極管。 圖2.4.2 紅外發(fā)射電路 圖2.4.3 紅外接收電路 我們分別在室內(nèi)和室外兩個(gè)地方各安裝一個(gè)傳感器,當(dāng)衣架運(yùn)動(dòng)是室內(nèi)時(shí),為了不讓衣架運(yùn)動(dòng)過度,通過紅外傳感器檢測(cè)到衣架后,將衣架停止。當(dāng)衣架運(yùn)動(dòng)是室外時(shí),為了不讓衣架運(yùn)動(dòng)過度,通過紅外傳感器檢測(cè)到衣架后,將衣架停止,晾曬衣物。 2.5 STM32控制器STM32系列單片機(jī)是一款高性能、低成本、低功耗的嵌入式應(yīng)用的單片機(jī),它的內(nèi)核是ARM Cortex-M3。ST公司對(duì)STM32進(jìn)行了產(chǎn)品劃分,按性能分成兩個(gè)不同的系列:STM32F103屬于增強(qiáng)型系列和STM32F101是基本型系列。增強(qiáng)型STM32F103系列的系統(tǒng)時(shí)鐘頻率可達(dá)到72MHz,是同類中低端產(chǎn)品中性能是屬于最高的一款產(chǎn)品。STM32F101基本型的系統(tǒng)時(shí)鐘頻率是36MHz,它的16位產(chǎn)品比其他公司的16位產(chǎn)品在價(jià)格上有大幅提升了性能,是16位單片機(jī)用戶的最好的選擇。STM32F103與STM32F101系列都內(nèi)置32K到128K的閃存,所不一樣的是SRAM的最大容量是和外部設(shè)備接口的組合。當(dāng)系統(tǒng)時(shí)鐘的頻率為72MHz時(shí),單片機(jī)從內(nèi)部閃存位置開始執(zhí)行初始代碼,STM32總的系統(tǒng)功耗36mA,是32位單片機(jī)市場(chǎng)中功耗最低的一款產(chǎn)品,電流頻率比為0.5mA/MHz。圖2.5.1是STM32F103C8T6的實(shí)物圖。 圖2.5.1 STM32F103C8T6 STM32F103C8T6總共有48個(gè)引腳,PA0—PA15端口A15個(gè)、PB0—PB15端口B15個(gè),2個(gè)外部晶振引腳OSC_IN、OSC_OUT,1個(gè)復(fù)位引腳NRST,2個(gè)32.768K的實(shí)時(shí)時(shí)鐘晶振引腳,BOOT0程序驅(qū)動(dòng)腳。VDDA、VDD_1、VDD_2、VDD_3與VSS、VSS_1、VSS_2 、VSS_3總共8個(gè)電源引腳,包括模擬供電電源。內(nèi)核采用ARM 32位的Cortex-M3,最高72MHz工作頻率,單周期乘法和硬件除法;存儲(chǔ)器采用從64K字節(jié)的閃存程序存儲(chǔ)器,高達(dá)20K字節(jié)的SRAM;時(shí)鐘、復(fù)位和電源管理采用3.6伏供電和I/O引腳,上電/斷電復(fù)位(POR/PDR)、可編程電壓監(jiān)測(cè)器(PVD),8MHz晶體振蕩器,內(nèi)嵌經(jīng)出廠調(diào)校的8MHz的RC振蕩器,內(nèi)嵌帶校準(zhǔn)的40kHz的RC振蕩器,產(chǎn)生CPU時(shí)鐘的PLL,帶校準(zhǔn)功能的32kHz RTC振蕩器;低功耗模式有睡眠、停機(jī)和待機(jī)模式,VBAT為RTC和后備寄存器供電;2個(gè)12位模數(shù)轉(zhuǎn)換器,1us轉(zhuǎn)換時(shí)間(多達(dá)16個(gè)輸入通道) ,轉(zhuǎn)換范圍:0至3.6V,雙采樣和保持功能,還有內(nèi)部溫度傳感器;內(nèi)部共有7通道DMA控制器,支持的外設(shè)有3個(gè)定時(shí)器、ADC、SPI、I2C和USART等;調(diào)試模式可選擇串行單線調(diào)試(SWD)和JTAG接口。如圖2.5.2所示。 圖2.5.2 引腳圖 圖2.5.3與圖2.5.4是STM32F103C8T6的外部時(shí)鐘,本方案采用8M外部晶振,進(jìn)過內(nèi)部9倍頻后得到72M系統(tǒng)時(shí)鐘,圖5與圖6中的30pF電容與10pF電容為晶振的啟動(dòng)電容,不能偏大也不能偏小,鏈接8M的晶振上經(jīng)典值電容應(yīng)該選擇30pF,32.768K晶振上的電容最大不能超過15pF,晶振連接圖如圖所示。 圖2.5.3 8M時(shí)鐘 圖2.5.4 32.768K時(shí)鐘 單片機(jī)最小系統(tǒng)包括單片機(jī)芯片、晶振、復(fù)位電路,圖2.5.5所示為單片機(jī)的復(fù)位電路,SW1為復(fù)位按鍵,常態(tài)為開,當(dāng)按下時(shí)為閉合,R4為10K電阻,上拉電阻的選取沒有固定的要求,通常選取10K,C5為濾波電容,大小選擇104電容,也就是100nF陶瓷電容,防止復(fù)位按鍵抖動(dòng),導(dǎo)致系統(tǒng)誤復(fù)位,啟動(dòng)濾除系統(tǒng)脈沖的作用,保護(hù)最小系統(tǒng)的正常工作。通常機(jī)械按鍵都有一個(gè)抖動(dòng)過程,就需要通過這個(gè)電容來濾除按鍵產(chǎn)生的抖動(dòng)。 圖2.5.5 復(fù)位電路 通常供電電源都有小幅波動(dòng),需要通過使用大電容來濾除電源抖動(dòng),圖2.5.6的4個(gè)電容是靠近STM32F103C8T6的電源引腳上放的,防止電源引腳有抖動(dòng)信號(hào)的干擾。104電容為通用的選取阻值。 圖2.5.6 濾波電路 為了實(shí)現(xiàn)單片機(jī)的正常工作,就需要為單片機(jī)提供穩(wěn)定的供電電源,這里使用LM1117線性穩(wěn)壓芯片為單片機(jī)提供穩(wěn)定的+3.3V電源,圖2.5.7中P6與P7為排針,方便杜邦線的插拔,C8、C6為+5V電源的輸入濾波電容,穩(wěn)定輸入的+5V電壓,使用100nF濾除高頻干擾,100uF濾除低頻干擾,C9、C7為輸出濾波電容,穩(wěn)定輸出電壓,使用100nF濾除輸出的高頻干擾,100uF濾除輸出的低頻干擾,為單片機(jī)提供可靠的供電電源。 圖2.5.7 穩(wěn)壓供電電路 圖2.5.8為單片機(jī)下載方式選擇端,或者是程序驅(qū)動(dòng)方式選擇端。STM32有三種啟動(dòng)模式對(duì)應(yīng)的存儲(chǔ)介質(zhì)均是芯片內(nèi)置的,它們是: 1)用戶閃存 = 芯片內(nèi)置的Flash。 2)SRAM = 芯片內(nèi)置的RAM區(qū),就是內(nèi)存啦。 3)系統(tǒng)存儲(chǔ)器 = 芯片內(nèi)部一塊特定的區(qū)域,芯片出廠時(shí)在這個(gè)區(qū)域預(yù)置了一段Bootloader,就是通常說的ISP程序。這個(gè)區(qū)域的內(nèi)容在芯片出廠后沒有人能夠修改或擦除,即它是一個(gè)ROM區(qū)。 在每個(gè)STM32的芯片上都有兩個(gè)管腳BOOT0和BOOT1,這兩個(gè)管腳在芯片復(fù)位時(shí)的電平狀態(tài)決定了芯片復(fù)位后從哪個(gè)區(qū)域開始執(zhí)行程序,見下表: BOOT1=x BOOT0=0 從用戶閃存啟動(dòng),這是正常的工作模式。 BOOT1=0 BOOT0=1 從系統(tǒng)存儲(chǔ)器啟動(dòng),這種模式啟動(dòng)的程序功能由廠家設(shè)置。 BOOT1=1 BOOT0=1 從內(nèi)置SRAM啟動(dòng),這種模式可以用于調(diào)試。 要注意的是,一般不使用內(nèi)置SRAM啟動(dòng)(BOOT1=1 BOOT0=1),因?yàn)镾RAM掉電后數(shù)據(jù)就丟失。多數(shù)情況下SRAM只是在調(diào)試時(shí)使用,也可以做其他一些用途。如做故障的局部診斷,寫一段小程序加載到SRAM中診斷板上的其他電路,或用此方法讀寫板上的Flash或EEPROM等。還可以通過這種方法解除內(nèi)部Flash的讀寫保護(hù),當(dāng)然解除讀寫保護(hù)的同時(shí)Flash的內(nèi)容也被自動(dòng)清除,以防止惡意的軟件拷貝。 一般BOOT0和BOOT1跳線都跳到0(地)。串口下載的情況下,BOOT0=1,BOOT1=0 ,再復(fù)位,點(diǎn)擊下載,下載完成后,把BOOT0的跳線接回0,也即BOOT0=0,BOOT1=0 。所以為了方便期間我們將BOOT1直接通過100K下拉電阻拉直地,只通過BOOT1就能進(jìn)行選擇下載方式。 圖2.5.8 下載方式選擇位 STM32的下載方式可以分為兩種方式:第一種是20引線的JTAG下載;第二種是5引線的SW下載方式,這里使用SW下載方式,所以具體分析第二種下載方式(SW下載),五根引線的連接分配如下表格:
圖2.5.9為實(shí)物圖中的連接方式,+3.3V、GND為電源引腳,SWDIO下載數(shù)據(jù)的引腳、SWCLK是下載數(shù)據(jù)的時(shí)鐘引腳,NRST為單片機(jī)復(fù)位引腳,也為下載器的復(fù)位引腳。 圖2.5.9 下載端口 STM32系列單片機(jī)內(nèi)部集成AD模塊,所以我們只需要使用STM32控制器即可實(shí)現(xiàn)AD轉(zhuǎn)化和音頻數(shù)據(jù)編碼后控制紅外發(fā)射電路的工作方式。 2.6 步進(jìn)電機(jī)驅(qū)動(dòng)電路步進(jìn)電機(jī)采用ULN2003進(jìn)行驅(qū)動(dòng),ULN2003是ST公司旗下的一款步進(jìn)電機(jī)驅(qū)動(dòng)的高性能芯片,高耐壓、大電流復(fù)合晶體管陣列,由七個(gè)硅NPN 復(fù)合晶體管組成。芯片內(nèi)部原理圖如圖2.6.1所示,邏輯是反向的。 
圖2.6.1 ULN2003內(nèi)部原理圖 單片機(jī)通過IO控制輸出驅(qū)動(dòng)ULN2003的輸入信號(hào),因?yàn)閱纹瑱C(jī)的IO輸出電流和功率不足以驅(qū)動(dòng)步進(jìn)電機(jī),所以采用ULN2003專用驅(qū)動(dòng)芯片驅(qū)動(dòng)步進(jìn)電機(jī),ULN2003輸出后的信號(hào)直接接到步進(jìn)電機(jī)的引腳上,如圖2.6.2所示。 圖2.6.2 步進(jìn)電機(jī)驅(qū)動(dòng)電路 2.7 液晶顯示屏由于Nokia5110液晶的四大優(yōu)點(diǎn)所以選擇作為顯示模塊,如圖3-6-1所示: 1)性價(jià)比高,LCD1602可以顯示32個(gè)字符,而Nokia5110可以顯示15個(gè)漢字,30個(gè)字符。Nokia5110裸屏僅8.8元,LCD1602一般15元左右,LCD12864一般50~70元。 2)接口簡(jiǎn)單,僅四根I/O線即可驅(qū)動(dòng),1602需11根I/O線,12864需12根。 3)速度快,是LCD12864的20倍,是LCD1602的40倍。 4) Nokia5110工作電壓3.3V,正常顯示時(shí)工作電流200uA以下,具有掉電模式,適合電池供電的便攜式移動(dòng)設(shè)備。 5110液晶的引腳定義為RST復(fù)位引腳、CE片選引腳、DC數(shù)據(jù)/命令切換引腳、Din數(shù)據(jù)輸入引腳、CLK時(shí)鐘引腳,BL背光開關(guān)引腳,5110供電電壓可在+3V—+5V,我們方案采用+3.3V,如圖2.7.1所示。 圖2.7.1 5110液晶 圖2.7.2 液晶接口 51110液晶的各引腳定義如下所示: 引腳號(hào) 引腳名 功能 備注 1 GND 地 2 BL 背光控制腳 高電平打開背光燈,否則相反 3 VDD 電源輸入腳 3.3-5V(推薦使用3.3V),導(dǎo)電膠連接 4 CLK 同步時(shí)鐘輸入 最高可達(dá)4Mbps 5 DIN 數(shù)據(jù)輸入 時(shí)鐘上升沿采樣 6 D/C 數(shù)據(jù)/命令切換 0:命令;1:數(shù)據(jù) 7 CE 片選信號(hào) 低電平有效 8 RST 復(fù)位信號(hào)輸入 低電平有效 液晶模塊內(nèi)部的原理圖如圖2.7.3所示: 
圖2.7.3 5110液晶內(nèi)部原理圖 圖2.8 按鍵電路 2.8 按鍵電路如圖2.8所示,按鍵電路圖,上拉10K電阻檢測(cè)按鍵情況,當(dāng)按鍵按下后,輸出電平是低電平0,當(dāng)按鍵抬起后,輸出電壓是高電平3.3V。
3 基于單片機(jī)的的智能晾衣系統(tǒng)的軟件設(shè)計(jì)軟件部分采用C語言進(jìn)行編寫,開發(fā)環(huán)境選擇keil4。采用單片機(jī)進(jìn)行采集光照、雨滴兩個(gè)外部天氣信號(hào),并通過單片機(jī)控制旋轉(zhuǎn)衣架,旋轉(zhuǎn)衣架通過步進(jìn)電機(jī)進(jìn)行調(diào)節(jié),當(dāng)外部天晴,且無雨時(shí),將衣架轉(zhuǎn)出,晾曬衣物;當(dāng)下雨或者沒有陽光時(shí),轉(zhuǎn)回室內(nèi),防止被雨打濕,或者天已黑。 3.1 系統(tǒng)分析外部天氣的光照和下雨情況,如下表1: 表1 外部天氣的光照和下雨分類表 所以我們可以通過表格發(fā)現(xiàn),只有當(dāng)外部天氣是晴天,且沒有雨的時(shí)候,衣物是可以進(jìn)行晾曬的,其他條件下,都需要將衣物拿回室內(nèi)。 3.2 軟件算法算法從最初對(duì)的系統(tǒng)初始化、外設(shè)初始化后,就通過按鍵設(shè)定光照和雨滴的閾值,來決定怎么樣的光照強(qiáng)度和怎么樣的雨滴強(qiáng)度,才能使衣架出去晾曬,或者回到室內(nèi)。之后就判斷是否有雨,是否有光照,若有達(dá)到相應(yīng)強(qiáng)度的光照和沒有雨時(shí)就出去晾曬衣物,其他清理進(jìn)室內(nèi)。但是有時(shí)機(jī)器也會(huì)被東西給卡主,所以需要檢查衣架是否有故障,若有故障,就停下來,若無故障就完成上一步?jīng)]有完成的動(dòng)作,即回到室內(nèi)或者出室晾曬。 圖3.2 算法流程圖 3.3 軟件容錯(cuò)處理采用累積時(shí)間來判斷事故,我們通過實(shí)驗(yàn)可得當(dāng)衣架從室內(nèi)到室外,或者從室外到室內(nèi)的運(yùn)動(dòng)時(shí)間大概是20秒左右,我們累積時(shí)間當(dāng)超過30秒時(shí),室內(nèi)衣架位置傳感器還沒有檢測(cè)到衣架回到室內(nèi),就是說明發(fā)生了事故;同理,從室內(nèi)到室外也是用室外的衣架位置傳感器檢測(cè)衣架,當(dāng)超過30秒時(shí)還沒有檢測(cè)到衣架,就表示發(fā)生故障。
4 實(shí)驗(yàn)調(diào)試通過實(shí)驗(yàn)調(diào)試得到圖4.1、4.2、4.3、4.4,可以看出實(shí)現(xiàn)運(yùn)行正常,且可行。當(dāng)外部天晴,且無雨時(shí),將衣架轉(zhuǎn)出,晾曬衣物;當(dāng)下雨或者沒有陽光時(shí),轉(zhuǎn)回室內(nèi),防止被雨打濕,或者天已黑。 圖4.1 按鍵設(shè)定閾值 圖4.2 有陽光衣架出室 圖4.3 衣架達(dá)到設(shè)定位置停下 圖4.4 有雨衣架回室內(nèi)
5 結(jié)論與展望本文檔設(shè)計(jì)并實(shí)現(xiàn)了基于單片機(jī)的智能晾衣系統(tǒng),通過實(shí)驗(yàn)調(diào)試,當(dāng)外部天晴,且無雨時(shí),衣架轉(zhuǎn)出,晾曬衣物;當(dāng)下雨或者沒有陽光時(shí),轉(zhuǎn)回室內(nèi)。完成要求中智能晾衣桿全自動(dòng)工作,實(shí)現(xiàn)無人操控;晾衣桿有兩個(gè)位置,伸出去,縮回來;可以進(jìn)行位置檢測(cè):晾衣桿伸出去時(shí),到達(dá)指定位置能夠停下來;有軟件容錯(cuò)處理:晾衣桿伸縮過程中遇到各種障礙,能夠通過軟件容錯(cuò)處理來停止;使用光敏傳感器:天黑時(shí)候?qū)⒁路栈貋恚炝習(xí)r候或者陽光猛烈的時(shí)候伸出去晾曬;使用雨滴傳感器:下雨的時(shí)候?qū)⒁路栈貋恚粎?shù)靈敏度可以調(diào)節(jié)(動(dòng)態(tài)設(shè)置):按鍵+液晶顯示;采用5V供電:5V電源供給單片機(jī)、電機(jī)。 本文檔實(shí)現(xiàn)了智能晾衣系統(tǒng),還需要結(jié)合市場(chǎng),對(duì)衣架的結(jié)構(gòu)和工作方式。比如旋轉(zhuǎn)還是上下伸縮,前后伸縮等,進(jìn)一步完善系統(tǒng),使之滿足市場(chǎng)需求,更好的為客戶服務(wù)
致 謝值此文檔即將完稿之際,向所有關(guān)心和幫助我的朋友表示衷心的感謝!首先,要感謝我的導(dǎo)師。兩年多來,在老師的精心指導(dǎo)和親切關(guān)懷下,我完成了本課題硬件系統(tǒng)的搭建、監(jiān)控系統(tǒng)的開發(fā)和實(shí)驗(yàn)分析以及文檔撰寫等工作。導(dǎo)師淵博的學(xué)識(shí)、嚴(yán)謹(jǐn)?shù)膽B(tài)度、求實(shí)的精神以及高尚的個(gè)人品質(zhì),給我留下了深刻的印象,使我受益終身。兩年多來,無論是在學(xué)業(yè)上還是在生活中導(dǎo)師都給予我無微不至的關(guān)懷,寬容對(duì)待我的犯錯(cuò),其坦誠與親和感染了我。借此機(jī)會(huì),我要向尊敬老師致以最誠摯的謝意! 兩年多來,同窗好友等人在我的學(xué)業(yè)和生活中給予我莫大的支持和幫助,與他們分享我進(jìn)步的快樂,分擔(dān)失敗的苦澀是人生中的幸事!感謝我的師兄,他們?cè)谖业膶W(xué)習(xí)過程中引導(dǎo)我前進(jìn),教我把握課題的進(jìn)度,我今天的文檔和他們的關(guān)心是分不開的。感謝師弟、師妹們的無私幫助!感謝求學(xué)期間給我提供幫助的老師、同學(xué)! 最后,我要感謝我的所有親人在我求學(xué)生涯中給予我一貫的支持和鼓勵(lì)!
附頁1圖A 實(shí)物圖
附頁2- #include "led.h"
- #include "delay.h"
- #include "sys.h"
- #include "key.h"
- #include "usart.h"
- #include "key.h"
- #include "nokia_5110.h"
- #include "adc.h"
-
- void motor_forward(void);
- void motor_back(void);
-
- int main(void)
- {
- while(1)
- {
- key = KEY_Scan();
- switch(key)
- {
- case 1:
- {
- k=0;
- light_set++;
- if(light_set >= 10)
- light_set = 0;
- }
- break;
- case 2:
- {
- k=0;
- rain_set++;
- if(rain_set >= 10)
- rain_set = 0;
- }
- break;
- default:
- k++;
- break;
- }
- delay_ms(5);
- sprintf(str,"light_set:%d",light_set);
- LCD_write_String(0,1,str);
- sprintf(str,"rain_set:%d",rain_set);
- LCD_write_String(0,3,str);
- if(k>=1000)
- break;
- }
-
- while(1)
- {
- light = Get_Adc_Average(0,10);
- light = light/410;
- rain = Get_Adc_Average(1,10);
- rain = rain/410;
- son = Get_Adc_Average(2,10);
- son = son/410;
- soff = Get_Adc_Average(3,10);
- soff = soff/410;
-
- sprintf(str,"light:%d",9-light);
- LCD_write_String(0,0,str);
- sprintf(str,"light_set:%d",light_set);
- LCD_write_String(0,1,str);
- sprintf(str,"rain:%d",9-rain);
- LCD_write_String(0,2,str);
- sprintf(str,"rain_set:%d",rain_set);
- LCD_write_String(0,3,str);
- sprintf(str,"state:%d %d",son,soff);
- LCD_write_String(0,4,str);
- sprintf(str,"state:off");
- LCD_write_String(0,5,str);
-
- }
-
- }
-
- void motor_forward(void)
- {
- MOTOR1 = 0;
- MOTOR2 = 1;
- MOTOR3 = 1;
- MOTOR4 = 1;
- delay_ms(10);
- MOTOR1 = 1;
- MOTOR2 = 0;
- MOTOR3 = 1;
- MOTOR4 = 1;
- delay_ms(10);
- MOTOR1 = 1;
- MOTOR2 = 1;
- MOTOR3 = 0;
- MOTOR4 = 1;
- delay_ms(10);
- MOTOR1 = 1;
- MOTOR2 = 1;
- MOTOR3 = 1;
- MOTOR4 = 0;
- delay_ms(10);
- }
- void motor_back(void)
- {
- MOTOR1 = 1;
- MOTOR2 = 1;
- MOTOR3 = 1;
- MOTOR4 = 0;
- delay_ms(10);
- MOTOR1 = 1;
- MOTOR2 = 1;
- MOTOR3 = 0;
- MOTOR4 = 1;
- delay_ms(10);
- MOTOR1 = 1;
- MOTOR2 = 0;
- MOTOR3 = 1;
- MOTOR4 = 1;
- delay_ms(10);
- MOTOR1 = 0;
- MOTOR2 = 1;
- MOTOR3 = 1;
- MOTOR4 = 1;
- delay_ms(10);
- }
復(fù)制代碼
以上圖文的Word格式文檔下載(內(nèi)容和本網(wǎng)頁上的一模一樣,方便保存):
word文檔.doc
(4.39 MB, 下載次數(shù): 136)
2021-9-29 04:49 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|