




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、指導教師評定成績:審定成績:重慶郵電大學自動化學院計算機控制技術課程設計報告設計題目:光源隨動系統(tǒng)單位(二級學院):學生姓名:專業(yè):班級:學號:指導教師:設計時間:2013年6月郵電大學自動化學院制本設計給出了一種基于單片機的點光源自動跟蹤系統(tǒng)設計方案,該設計使用TI公司的超低功耗的AT89C52單片機作為整個系統(tǒng)的控制核心,主要由電機驅動模 塊,點光源檢測模塊,電源轉換模塊等模塊組成。利用8路光敏電阻來檢測點光源的位置并將檢測到的信號經過放大后進行 AD轉換,將轉換的結果傳給控制器 AT89C52單片機,經過過單片機的運算和處理來確定點光源的運動趨勢,并將運算 的控制信號控制兩臺步進電機,使
2、其跟隨點光源運動。本設計可以擴展為以后的太陽能發(fā)電的自動跟蹤系統(tǒng)。該系統(tǒng)不僅能自動根據 太方向來調整太陽能電池板朝向,結構簡單、成本低,而且在跟蹤過程中能自動記 憶和更正不同時間的坐標位置,不必人工干預,特別適合天氣變化比較復雜和無人 值守的情況,有效地提高了太陽能的利用率,有較好的推廣應用價值。關鍵詞:AT89C52單片機、光源、自動跟蹤、傳感器摘要 錯誤!未定義書簽。目錄 3一設計題目 41.1基于單片機的光源自適應控制系統(tǒng)設計 41.2設計要求 4二設計報告正文 52.1設計方案總體方向的選擇 52.1.1 系統(tǒng)方案的擬定 52.1.2 方案選擇 52.2硬件電路的設計 62.2.1 A
3、/D轉換模塊 62.2.2 步進電機模塊 92.2.3 電機驅動模塊 112.2.4 檢測模塊 132.2.5 單片機模塊 142.3系統(tǒng)軟件設計 18三總體調試 193.1 總體調試 193.2問題及解決方案 193.2.1 通道比較閥值的設置 193.2.2 電機的防抖 19四設計總結 20五參考文獻 21六附錄 22一、設計題目1.1基于單片機的光源自適應控制系統(tǒng)設計設計一控制系統(tǒng),假設有一個太陽能電池板,為了使電池板最大限度的接受光照 強度,通過控制器調節(jié)電池板的角度使電池板始終正對光線。采用步進電機作為角 度調整裝置,使系統(tǒng)能上下和左右旋轉。1.2設計要求1. 繪制原理圖;2. 連接
4、電路;3. 編寫程序;4. 調試運行。二、設計報告正文2.1設計方案的選擇2.1.1系統(tǒng)方案的擬定1. 萬案一由檢測電路、AT89C52單片機、時鐘電路、A/D轉換控制電路等主要模塊組成。 傳感器部分采用光敏二極管,將光信號變換為電信號。經過A/D轉換將其轉化離散的數字信號。控制電路以單片機為核心,能夠對采集的數字信號進行處理和判斷, 控制步進電機運轉使傳感器光板正對光線。2. 方案二以單片機低功耗LM3S1138微控制器作為核心控制單元,光強度檢測模塊,時鐘 模塊,電機驅動,電源供電,步進電機控制電路模塊等主要模塊組成。傳感器采用 光敏電阻,LM3S1138微控制器自帶8個10位A/D,能夠
5、識別模擬信號??刂齐娐芬?單片機為核心,能夠對采集的模擬信號進行處理和判斷對步進電機實現控制。2.1.2方案選擇比較以上兩方案可知,系統(tǒng)的工作原理是一致的,都是通過傳感器感受光強變化并間接或直接將其轉化成單片機能夠識別的信號,通過單片機處理信號并進行判斷,步進電機控制電路根據單片機傳出的信號轉動。不同的是選擇的控制器,從單片機 方面考慮,方案一所使用的傳統(tǒng)的AT89C52單片機器件比方案二所使用的 LM3S1138 微控制器成本低,但是方案二集成8為A/D/處理模塊,對于處理數模顯得簡單方便。 經過試驗,采用外接A/D模塊的方案一,傳感器采集數據電路處理較復雜,A/D模塊后期程序編寫遇到瓶頸,
6、無法實現,于是改為選擇采用LM3S1138微控制器的方案 二,因為有經驗借鑒,因此設計題目的要求得以方便實現。綜合考慮,最后確定選-L-'X/ 擇萬案二。系統(tǒng)組成及工作原理以單片機為控制核心,采用光強度檢測電路測量,以光敏電 阻傳感器作為測量元件,構成光電測量模塊。該系統(tǒng)可分為電源模塊電路、光電測 量電路、步進電機控制電路、單片機、A/D轉換電路。選用的主要器件有:光敏電阻, LM3S1138微控制器,ULN2003步進電機驅動模塊,步進電機等。圖2-1系統(tǒng)設計框圖2.2硬件電路的設計2.2.1步進電機模塊驅動方法及主要參數:驅動方式(4-1-2相驅動)導線顏色123456785紅+4
7、橙-3黃-2粉-1藍-主要技術參數電機型號電壓V相數步距角度減速比28BYJ-48545.625/641:642.步進電機的主要特性:1) 步進電機必須加驅動才可以運轉, 驅動信號必須為脈沖信號,沒有脈沖的時候, 步進電機靜止,如果加入適當的脈沖信號, 就會以一定的角度(稱為步角)轉動 轉動的速度和脈沖的頻率成正比。2)28BYJ48是減速步進電機,減速比為1: 64,步進角為5.625/64度。如果需要轉 動1圈,那么需要360/5.625*64=4096個脈沖信號。3)步進電機具有瞬間啟動和急速停止的優(yōu)越特性。4) 改變脈沖的順序,可以方便的改變轉動的方向。電機線圈由四相組成,即 A B、
8、C、D四相,電機示意圖和各線圈通電順序圖如下 圖所示:相順序從0到1稱為一步,電機軸將轉過5.625度,四相四拍為0-1-2-3貝U稱為 通電一周,若循環(huán)進行這種通電一周的操作,電機便連續(xù)的轉動起來,而進行相反 的通電順序如3-2-1-0將使電機同速反轉。同理四相八拍的通電順序為 A-AB-B-BC-C-CD-D-DA-A(本設計用的是四相八拍)。通電一周的周期越短,即驅動 頻率越高,則電機轉速越快,但步進電機的轉速也不可能太快,因為它每走一步需 要一定的時間,若信號頻率過高,可能導致電機失步,甚至只在原步顫動。2.2.3電機驅動模塊本設計采用LM3S113微控制器(晶振頻率為12MHZ對該四
9、線八相制步進電機進 行控制。通過I/O 口輸出的具有時序的方波作為步進電機的控制信號,信號經過特 定芯片驅動步進電機。本文選用 ULN2003構成步進電機的驅動電路,ULN2003是高 耐壓、大電流達林頓列,由七個硅 NPN達林頓管組成。選擇ULN2003作為步進電機的驅動電路。其部集成了一個消線圈反電動勢的二 極管,可用來驅動繼電器。它是雙列16腳封裝,NPN晶體管矩陣,最大驅動電壓=50V, 電流=500mA輸入電壓=5V,適用于TTL COMS由達林頓管組成驅動電路。ULN是集成達 林頓管IC,部還集成了一個消線圈反電動勢的二極管,它的輸出端允許通過電流為 200mA飽和壓降VCE勺1V
10、左右,耐壓BVCE約為36V。用戶輸出口的外接負載可根據以上參數估算。采用集電極開路輸出,輸出電流大,故可直接驅動繼電器或固體繼 電器,也可直接驅動低壓燈泡。通常單片機驅動ULN2003寸,上拉2K的電阻較為合適,同時,CO引腳應該懸空或接電源COMOutputCULN2OO3A. ULN2004A. ULQ003A. ULQ20O4A圖如圖2-7所示。ULN2003和LM3S1138微控制器構成的驅動電路如圖 2-8所示圖2-7 ULN2003部方框圖該電路的特點如下:ULN2003的每一對達林頓都串聯一個2.7K的基極電阻,在 5V的工作電壓下它能與TTL和CMOS電路直接相連,可以直接處
11、理原先需要標準邏 輯緩沖器來處理的數據。ULN2003工作電壓高,工作電流大,灌電流可達500mA并 且能夠在關態(tài)時承受50V的電壓,輸出還可以在高負載電流并行運行。ULN2003采用DIP16塑料封裝。輸入低電平輸出高電平,輸入高電平輸出低電平ULN2003A勺輸出結構是集電極開路的,所以要在輸出端接一個上拉電阻, 在輸入低 電平的時候輸出才是高電平 本次課程設計使用的5線4相步進電28BYJ-48有VCC線故不需接上拉電阻ULHSEEl.LI1ULN3KQAC5fTBTx-II ;wlcMx疤復丸從O1眄125圖2-8 ULN2003和LM3S1138微控制器構成的驅動電路2.2.4檢測模
12、塊:通過比較1、2和3、4兩組電壓的大小,實現豎直方向的轉動,通過比較1、3和2、 4兩組電壓的大小,實現水平方向的轉動。圖2-10檢測電路2.2.5單片機模塊1.LM3S1138微控制器結構和引腳單片機的選擇主要考慮了單片機自帶資源是否滿足設計要求,如果能夠選擇合適的單片機,則可大為簡化電路設計的復雜程度,從而提高系統(tǒng)的可靠性。本系統(tǒng)采 用LM3S1138微控制器作為核心控制單元。LM3S1138微控制器具有的電池備用的休 眠模塊,可以有效地使LM3S1138掉電,在長時間的器件停止工作過程中讓器件進入 一個低功耗的狀態(tài),這非常適合要求最大限度降低功耗的應用。LM3S1138微控制器的優(yōu)勢還
13、在于能夠方便的運用多種 ARM的開發(fā)工具和片上系統(tǒng)(SoC的底層IP應 用方案,以及廣大的用戶群體。另外,該微控制器使用了兼容ARMThumb勺Thumb2指令集來減少存儲容量的需求,并以此達到降低成本的目的。最后,LM3S1138微控制器Stellaris系列的所有成員是代碼兼容的,這為用戶提供了靈活性,能夠適應各種精確的需求。LM3S113微控制器的相關特性:? 單輸入和微分輸入配置? 用作單終端輸入的8個10位通道(輸入)? 靈活、可配置的模數轉換? 可以把輸出配置為:驅動輸出管腳、產生中斷或者 AD(采樣序列? 比較兩個外部管腳輸入或者將外部管腳輸入與部可編程參考電壓相比較? 片低壓差
14、(LDO穩(wěn)壓器,具有可編程的輸出電壓,用戶可調節(jié)的圍為2.25V到2.75V因此采用LM3S113微控制器可以最大程度提高本系統(tǒng)的準確度。ADCOADC1 VDDA&NDAADC2ADC3LDOVDDPDOPD1PDSAJIxPD3/UirxVDD25GNDPGSP2PGlflJ2TxPG0/U2TXVDD&NDPC7jnC2-PC5/C1PCVCC®xa.0 恃 srtLLl-sm sstLu awOS OS 0 = uz 凸舌InINgAM'sl>01SJLSSHFssEISSI1CIWPECLM3S1130I2COSCLJPEE2GMD VDD C
15、CF2/PB1 CCFOflPiO CMODO /RET OND VDD25 PF1PF2 IPF3 COo/PF4 GND VDD VBftT GNDuz CJhlCM趙 <la>山XWIV5WO80A 05. 寸 dQo/Ld CJaCJ確OJInedio 艮XOSC1XOSiSO/HIS川丨丨丨丨丨丨丨丨丨丨丁丨丨丨川丨II圖2-11 LM3S1138芯片引腳圖2.3系統(tǒng)軟件設計本設計中程序采用C語言進行設計。程序中主要有以下幾個主要子程序: 主程序, LM3S1138微控制器部集成的A/D模塊初始化、采集、轉換數據程序,電機驅動控制 程序。程序源代碼見附錄。三、總體調試3.
16、1軟硬件調試寫完成后,在對整個系統(tǒng)調試的過程中,出現了電機不運轉等問題。主要通過 單獨調試各個模塊及檢查相關硬件電路的焊接,找出問題所在,然后針對問題逐個 擊破,最后成功完成本設計。四、設計總結本系統(tǒng)是點光源隨動系統(tǒng),通過采用lm3s1138單片機作為核心部件,光敏三級 管檢測到的信號時通過AD轉換為數字信號傳輸給單片機,將處理的結果以脈沖的形 式輸出給驅動電路uln2003,驅動步進電機運動。使其追蹤到點光源的位置。通過 老師同學的共同努力,大家相互配合,不斷彌補知識的漏洞,基本可以實現點光源 隨動的功能五、參考文獻1 薛建國基于單片機的太陽能電池自動跟蹤系統(tǒng)的設計J.師學院學報:自然科學版
17、,2005,24(3) : 26-30.2 興磊,麗麗.一種太陽自動跟蹤系統(tǒng)的設計J.農業(yè)大學學報,2008, 26: 315318.3 敏,京城,俊,等.一種新型的太陽能自動跟蹤裝置J.電子器件,2008, 31(5): 1702 1703,1708.4 侯長來.一種太陽自動跟蹤裝置的設 JJ .現代機械,2005(1) : 66 68.六、附錄1.系統(tǒng)整體電路圖L咅也瞬“一 |早二些*3.程序#include "systemlnit.h"#include "uartGetPut.h"#include <adc.h>#include <
18、;stdio.h>#define ADCSequEnableADCSequenceEnable#define ADCSequDisable#define ADCSequConfig#define ADCSequStepConfigADCSequenceDisableADCSequenceConfigureADCSequenceStepConfigure#define ADCSequDataGetADCSequenceDataGettBoolean ADC_EndFlag = false; /定義ADC專換結束的標志/ 定義KEY#define KEY_PERIPH#define KEY_
19、PORT#define KEY_PINSYSCTL_PERIPH_GPIOGGPIO_PORTG_BASEGPIO_PIN_5unsigned char FFW8=0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09; /unsigned char REV8=0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01; /四相八拍正轉編碼四相八拍反轉編碼void motor_ffw()unsigned char i;unsigned int j;for (j=0; j<1; j+)/轉 1*n 圈for (i=0; i<8; i+)/一
20、個周期轉 45 度GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_0 | GPIO_PIN_1| GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4| GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7, FFWi);/ P1 = FFWi; /取數據SysCtlDelay(1 * (TheSysClock / 3000);void motor_rev()unsigned char i;unsigned int j;for (j=0; j<1; j+)/轉 1 冶 圈/退岀此循環(huán)程序for (i=0; i<8
21、; i+) /一個周期轉 45 度GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_0 | GPIO_PIN_1| GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4| GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7 , REVi);/ P1 = REVi; /取數據SysCtlDelay(1 * (TheSysClock / 3000);void motor_ffw1()unsigned char i;unsigned int j;轉1*n圈for (j=0; j<1; j+)/for (i=0; i<8
22、; i+)/一個周期轉45度GPIOPinWrite(GPIO_PORTE_BASE, GPIO_PIN_0 | GPIO_PIN_1| GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4| GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7, FFWi);/ P1 = FFWi; /取數據SysCtlDelay(1 * (TheSysClock / 3000);void motor_rev1()unsigned char i;unsigned int j;for (j=0; j<1; j+)/轉 1 >n 圈/退岀此循環(huán)程序for (i
23、=0; i<8; i+) /一個周期轉 45 度GPIOPinWrite(GPIO_PORTE_BASE, GPIO_PIN_0 | GPIO_PIN_1| GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4| GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7 , REVi);/ P1 = REVi; /取數據SysCtlDelay(1 * (TheSysClock / 3000);/ ADC初始化void adcInit(void)SysCtlPeriEnable(SYSCTL_PERIPH_GPIOB);SysCtlPeriEnable(
24、SYSCTL_PERIPH_GPIOE);GPIOPinTypeOut(GPIO_PORTE_BASE,GPIO_PIN_0 | GPIO_PIN_1| GPIO_PIN_2 | GPIO_PIN_3);GPIOPinTypeOut(GPIO_PORTB_BASE,GPIO_PIN_0 | GPIO_PIN_1| GPIO_PIN_2 | GPIO_PIN_3);SysCtlPeriEnable(KEY_PERIPH);GPIOPinTypeIn(KEY_PORT, KEY_PIN);SysCtlPeriEnable(SYSCTL_PERIPH_ADC);/SysCtlADCSpeedSet(
25、SYSCTL_ADCSPEED_125KSPS);ADCSequDisable(ADC_BASE, 0);/使能ADC模塊/設置ADC采樣率配置前先禁止采樣序列/采樣序列配置:ADCS址,采樣序列編號,觸發(fā)事件,采樣優(yōu)先級ADCSequConfig(ADC_BASE, 0, ADC_TRIGGER_PROCESSOR, 0);/ ADC采樣序列步進配置:ADCS址,采樣序列0,步值,采樣通道ADCSequStepConfig(ADC_BASE, 0, 0, ADC_CTL_CH0);ADCSequStepConfig(ADC_BASE, 0, 1, ADC_CTL_CH1);ADCSequSt
26、epConfig(ADC_BASE, 0, 2, ADC_CTL_CH2);ADCSequStepConfig(ADC_BASE, 0, 3, ADC_CTL_CH3);/第0步:采樣ADC0/第1步:采樣ADC1/第2步:采樣ADC2/第3步:采樣ADC3ADC_CTL_END |/結束,ADC_CTL_IE);/申請中斷ADCIntEnable(ADC_BASE, 0);/使能ADC中斷IntEnable(INT_ADC0);/使能ADC采樣序列中斷IntMasterEnable();/使能處理器中斷ADCSequEnable(ADC_BASE, 0);/使能采樣序列/ ADC采樣:*pu
27、lVal保存采樣結果void adcSample(unsigned long *pulVal)/處理器觸發(fā)采樣序列等待采樣結束清除ADC采樣結束標志ADCProcessorTrigger(ADC_BASE, 0);while (!ADC_EndFlag);/ADC_EndFlag = false;/自動讀取全部ADC結果ADCSequDataGet(ADC_BASE, 0, pulVal); int main(void)unsigned char r,N=64;N步進電機運轉圈數unsigned long ulVal8,v8;int left,right,up,down,limit360l=0
28、,limit180u=0,limit360r=0,limit180d=0;char s40;unsigned long i;jtagWait();clockInit(); uartInit(); adcInit();for (;)adcSample(ulVal);for (i = 0; i < 8; i+)vi = (ulVali * 3) / 1024;/ UART/ ADC/ ADC/sprintf(s, "ADC%d = %d(mV)rn", i, v);uartPuts(s);/轉換成電壓值/防止JTAG失效,重要!時鐘初始化:PLL,20MHz初始化初始化采樣采樣值格式化為電壓值 通過UARTt出電壓值if( (v1+v2)-(v0+v3) > 3 ) left = 1;elseleft = 0;if( (v0+v3)-(v2+v1) > 3 ) right = 1;elseright = 0;if( (v2+v3)-(v1+v0) > 3 ) up = 1;elseup = 0;if( (v1+v0)-(v2+v3) > 3) down = 1;else二二二down Hpsysci_De_ayu 5 * (Thesyscock _ 3000)- =h(GPopinRead(KEYIPORT- KEY衛(wèi)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 寧波諾丁漢大學《白描花卉臨摹與寫生》2023-2024學年第一學期期末試卷
- 網頁設計與制作項目式教程(HTML CSS)(慕課版)-習題及答案 項目四
- 山東省昌樂縣第二中學2025年高三物理試題查缺補漏試題(文理)含解析
- 內蒙古大學創(chuàng)業(yè)學院《口腔頜面部解剖》2023-2024學年第二學期期末試卷
- 2025年中考語文熱點寫作素材積累:澳門回歸之盛世蓮花譜寫“一國兩制”新篇章
- 2023年上海高考語文試卷(含答案)
- 基礎梁架空施工方案
- 橡膠制品施工方案
- 2025年四愛屬性測試題及答案
- 5年級下冊英語外研版第一模塊課文
- 腰椎ODI評分完整版
- 單相電和三相電課件
- 俄羅斯的經濟與政治課件
- 01車輪踏面清掃裝置左
- 中國氣血健康白皮書
- 化學品安全技術說明書 MSDS( 石腦油)
- DB13T 5542-2022 水利水電工程施工組織設計編制指南
- 二期6KV系統(tǒng)1
- 研究生面試復試英語+常問問題
- 安徽省教育科學研究項目課題申請書【模板】
- 幼年特發(fā)性關節(jié)炎.
評論
0/150
提交評論