久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 28635|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

基于單片機(jī)的的智能晾衣系統(tǒng)設(shè)計(jì)文檔

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:269874 發(fā)表于 2018-1-1 20:54 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

基于單片機(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下載),五根引線的連接分配如下表格:

引腳名
描述
引腳分配
JTMS/SWDIO
串行線輸入/輸出
PA13
JTCK/SWCLK
串行線時(shí)鐘
PA14
NRST
復(fù)位
NRST
VDD
3.3V
VDD
GND
GND

圖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 外部天氣的光照和下雨分類表

是否有陽光

是否下雨

衣架動(dòng)作

收回室內(nèi)

收回室內(nèi)

出室晾曬

收回室內(nèi)

所以我們可以通過表格發(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
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "key.h"
  5. #include "usart.h"
  6. #include "key.h"
  7. #include "nokia_5110.h"
  8. #include "adc.h"

  9. void motor_forward(void);
  10. void motor_back(void);

  11. int main(void)
  12. {            
  13.               while(1)
  14.               {
  15.                             key = KEY_Scan();
  16.                             switch(key)
  17.                             {
  18.                                           case 1:
  19.                                           {            
  20.                                                         k=0;
  21.                                                         light_set++;
  22.                                                         if(light_set >= 10)
  23.                                                                       light_set = 0;
  24.                                           }
  25.                                           break;
  26.                                           case 2:
  27.                                           {
  28.                                                         k=0;
  29.                                                         rain_set++;
  30.                                                         if(rain_set >= 10)
  31.                                                                                     rain_set = 0;
  32.                                           }
  33.                                           break;
  34.                                           default:
  35.                                                         k++;
  36.                                                                       break;
  37.                             }
  38.                             delay_ms(5);
  39.                             sprintf(str,"light_set:%d",light_set);
  40.                             LCD_write_String(0,1,str);
  41.                             sprintf(str,"rain_set:%d",rain_set);
  42.                             LCD_write_String(0,3,str);
  43.                             if(k>=1000)
  44.                                           break;
  45.               }            
  46.             
  47.               while(1)
  48.               {
  49.                             light = Get_Adc_Average(0,10);
  50.                             light = light/410;
  51.                             rain  = Get_Adc_Average(1,10);
  52.                             rain = rain/410;
  53.                             son   = Get_Adc_Average(2,10);
  54.                             son = son/410;
  55.                             soff  = Get_Adc_Average(3,10);
  56.                             soff = soff/410;
  57.                                          
  58.                             sprintf(str,"light:%d",9-light);
  59.                             LCD_write_String(0,0,str);            
  60.                             sprintf(str,"light_set:%d",light_set);
  61.                             LCD_write_String(0,1,str);
  62.                             sprintf(str,"rain:%d",9-rain);
  63.                             LCD_write_String(0,2,str);            
  64.                             sprintf(str,"rain_set:%d",rain_set);
  65.                             LCD_write_String(0,3,str);
  66.                             sprintf(str,"state:%d %d",son,soff);
  67.                             LCD_write_String(0,4,str);            
  68.                             sprintf(str,"state:off");
  69.                             LCD_write_String(0,5,str);                                                                     
  70.                            
  71.               }            

  72. }

  73. void motor_forward(void)
  74. {
  75.                             MOTOR1 = 0;
  76.                             MOTOR2 = 1;
  77.                             MOTOR3 = 1;
  78.                             MOTOR4 = 1;
  79.                             delay_ms(10);
  80.                             MOTOR1 = 1;
  81.                             MOTOR2 = 0;
  82.                             MOTOR3 = 1;
  83.                             MOTOR4 = 1;
  84.                             delay_ms(10);
  85.                             MOTOR1 = 1;
  86.                             MOTOR2 = 1;
  87.                             MOTOR3 = 0;
  88.                             MOTOR4 = 1;
  89.                             delay_ms(10);
  90.                             MOTOR1 = 1;
  91.                             MOTOR2 = 1;
  92.                             MOTOR3 = 1;
  93.                             MOTOR4 = 0;
  94.                             delay_ms(10);
  95. }
  96. void motor_back(void)
  97. {
  98.                             MOTOR1 = 1;
  99.                             MOTOR2 = 1;
  100.                             MOTOR3 = 1;
  101.                             MOTOR4 = 0;
  102.                             delay_ms(10);
  103.                             MOTOR1 = 1;
  104.                             MOTOR2 = 1;
  105.                             MOTOR3 = 0;
  106.                             MOTOR4 = 1;
  107.                             delay_ms(10);
  108.                             MOTOR1 = 1;
  109.                             MOTOR2 = 0;
  110.                             MOTOR3 = 1;
  111.                             MOTOR4 = 1;
  112.                             delay_ms(10);
  113.                             MOTOR1 = 0;
  114.                             MOTOR2 = 1;
  115.                             MOTOR3 = 1;
  116.                             MOTOR4 = 1;
  117.                             delay_ms(10);
  118. }
復(fù)制代碼

以上圖文的Word格式文檔下載(內(nèi)容和本網(wǎng)頁上的一模一樣,方便保存):
word文檔.doc (4.39 MB, 下載次數(shù): 136)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏8 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

來自 2#
ID:164041 發(fā)表于 2019-10-15 17:54 | 只看該作者
樓主,你好,我下載了你分享的資料,但是里面也是沒有程序里面了頭文件,你手頭上有嗎?可不可以發(fā)下,謝謝啦!
回復(fù)

使用道具 舉報(bào)

板凳
ID:479708 發(fā)表于 2019-2-24 14:05 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報(bào)

地板
ID:358019 發(fā)表于 2019-2-24 15:19 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報(bào)

5#
ID:529574 發(fā)表于 2019-5-7 14:47 | 只看該作者
謝謝
回復(fù)

使用道具 舉報(bào)

6#
ID:414894 發(fā)表于 2019-5-17 09:03 | 只看該作者
我覺得有些地方可以由單片機(jī)程序進(jìn)行控制這樣可以省去一些成本,又鍛煉到了邏輯思維的能力提升
回復(fù)

使用道具 舉報(bào)

7#
ID:556679 發(fā)表于 2019-9-19 11:07 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

8#
ID:208849 發(fā)表于 2019-10-16 09:49 | 只看該作者
作為學(xué)習(xí)是可以了,但如果推論到實(shí)際產(chǎn)品,那就差很遠(yuǎn)了;應(yīng)該多跟進(jìn)實(shí)際的項(xiàng)目去做一些文檔
回復(fù)

使用道具 舉報(bào)

9#
ID:162734 發(fā)表于 2019-10-16 12:25 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

10#
ID:665267 發(fā)表于 2019-12-16 15:33 | 只看該作者
代碼一共就這么多嗎
回復(fù)

使用道具 舉報(bào)

11#
ID:671159 發(fā)表于 2020-1-3 19:07 來自觸屏版 | 只看該作者
樓主有完整的原理圖嗎,能發(fā)我一份嗎,謝謝
回復(fù)

使用道具 舉報(bào)

12#
ID:899118 發(fā)表于 2021-4-7 22:28 | 只看該作者
樓主,你好,請(qǐng)問有完整的程序和頭文件嗎?可以發(fā)我一下嗎?謝謝!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品免费av | 中文字幕欧美日韩 | 中文字幕一区在线观看视频 | 伊人狠狠干 | 久久在线| 亚洲精品免费观看 | 国产日韩欧美精品一区二区 | 九九九视频精品 | 午夜免费观看网站 | av电影一区二区 | 成人一区二区在线 | 精品乱子伦一区二区三区 | 91视频亚洲| 色花av| 欧美精品乱码久久久久久按摩 | 欧美亚洲国产一区二区三区 | 综合欧美亚洲 | 精精国产xxxx视频在线野外 | www中文字幕 | 天天操天天射综合网 | 欧洲毛片| 欧美激情一区二区三区 | 男女羞羞视频免费看 | 麻豆视频国产在线观看 | 激情五月婷婷在线 | 欧美日韩在线视频一区 | 国产1区 | 91大神在线资源观看无广告 | 中文字幕视频在线观看 | 日韩精品一区二区三区第95 | 国产精品日韩欧美一区二区三区 | 国精产品一品二品国精在线观看 | 黄色大片观看 | 精品视频在线播放 | 黄色大片网 | 国产精品欧美精品 | 国产免费一二三区 | 欧美国产日本一区 | 国产伦精品一区二区三区高清 | 欧美精品福利 | 国产一卡二卡三卡 |