畢業(yè)論文:基于自由擺的平板控制系統(tǒng)(終稿)_第1頁
畢業(yè)論文:基于自由擺的平板控制系統(tǒng)(終稿)_第2頁
畢業(yè)論文:基于自由擺的平板控制系統(tǒng)(終稿)_第3頁
畢業(yè)論文:基于自由擺的平板控制系統(tǒng)(終稿)_第4頁
畢業(yè)論文:基于自由擺的平板控制系統(tǒng)(終稿)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、摘 要摘摘 要要:本自由擺的平板控制系統(tǒng)采用 STC12C5A60S2 單片機作為主控系統(tǒng),L298N 作為電機驅(qū)動模塊,STC12C5A60S2 單片機通過 L298N 驅(qū)動模塊驅(qū) PK545-NAC-C29 步進機,使步進機上的平板隨著擺桿的擺動而旋轉(zhuǎn)。硬件局部主要包括 STC12C5A60S2 單片機最小系統(tǒng),L298N 電機驅(qū)動電路,N1000060 傾角傳感器,電源模塊等。本設(shè)計主要運用 STC12C5A60S2 單片機控制 4 相 6 線步進電機,由單片機產(chǎn)生脈沖信號精確控制步進機的轉(zhuǎn)速和角度,使步進電機上的平板能夠隨著擺桿擺動而保持水平平衡。關(guān)鍵詞關(guān)鍵詞:STC 單片機;L298

2、N 電機驅(qū)動芯片;傳感器目 錄摘摘 要要.1目目 錄錄.I1設(shè)計任務(wù)與要求設(shè)計任務(wù)與要求.1設(shè)計任務(wù) .1設(shè)計要求 .12方案比擬與論證方案比擬與論證.2主控器的選擇與論證 .2電機的選擇與論證 .2驅(qū)動模塊的選擇與論證 .33系統(tǒng)硬件設(shè)計系統(tǒng)硬件設(shè)計.3總體電路框圖 .3單元電路設(shè)計 .4整體電路圖 .74系統(tǒng)軟件設(shè)計系統(tǒng)軟件設(shè)計.7總體軟件框圖 .7各模塊軟件設(shè)計 .8總程序 .105系統(tǒng)調(diào)試與測試系統(tǒng)調(diào)試與測試.10測試儀器 .10測試指標 .10測試結(jié)果分析 .116設(shè)計總結(jié)設(shè)計總結(jié).11參考文獻參考文獻.11附錄附錄.12附錄 A:電路圖.12附錄 B:電路板圖.13附錄 C:元器件

3、清單.13附錄 D:總程序.14設(shè)計題目設(shè)計題目1設(shè)計任務(wù)與要求設(shè)計任務(wù)與要求1.1 設(shè)計任務(wù)1、設(shè)計并制作一個自由擺上的平板系統(tǒng),其結(jié)構(gòu)如圖 1-1 所示。擺桿的一端通過轉(zhuǎn)軸固定在一支架上,另一端固定安裝一臺電機,平板固在電機轉(zhuǎn)軸上;當擺桿如圖 1-2 所示擺動時,驅(qū)動電機可以控制平板轉(zhuǎn)動。圖 1-1 圖 1-21.2 設(shè)計要求1、控制電機使平板可以隨著擺桿的擺動而旋轉(zhuǎn)35 周 ,擺桿擺一個周期,平板旋轉(zhuǎn)一周360 ,偏差絕對值不大于 45。2、在平板上粘貼一張畫有一組間距為 1cm 平行線的打印紙。用手推動擺桿至一個角度 在 3045 間 ,調(diào)整平板角度,在平板中心穩(wěn)定放置一枚 1 元硬幣

4、人民幣 ;啟動后放開擺桿讓其自由擺動。在擺桿擺動過程中,要求控制平板狀態(tài),使硬幣在 5 個擺動周期中不從平板上滑落,并盡量少滑離平板的中心位置。3、用手推動擺桿至一個角度 在 4560 間 ,調(diào)整平板角度,在平板中心穩(wěn)定疊放 8 枚 1 元硬幣,見圖 1-2;啟動后放開擺桿讓其自由擺動。在擺桿擺動過程中,要求控制平板狀態(tài)使硬幣在擺桿的 5 個擺動周期中不從平板上滑落,并保持疊放狀態(tài)。根據(jù)平板上非保持疊放狀態(tài)及滑落的硬幣數(shù)計算成績。2方案比擬與論證方案比擬與論證2.1 主控器的選擇與論證方案一:采用 STC12C5A60S2方案二:采用 STC89C52方案三:采用 AT89C52方案論證:方案

5、一,STC12C5A60S2 芯片價格廉價,應(yīng)用范圍廣,功能強大,高速運轉(zhuǎn),低功耗,強抗靜電,強抗干擾,內(nèi)部集成雙串口、8 路 10bitADC 和兩路八位 PWM;方案二,STC89C52 芯片價格廉價,應(yīng)用范圍廣,運轉(zhuǎn)速度慢,抗靜電抗干擾弱,內(nèi)部無 ADC;方案三,AT89C52 芯片價格廉價,應(yīng)用范圍廣,運轉(zhuǎn)速度慢,抗靜電抗干擾弱,內(nèi)部無 ADC。鑒于設(shè)計要求,故采用方案一。2.2 電機的選擇與論證方案一:采用步進電機方案二:采用直流電機方案三:舵機方案論證:方案一,步進電機價格廉價,容易控制,旋轉(zhuǎn)角度于脈沖成正比,每步的旋轉(zhuǎn)角度精確度高,不會將一步的誤差積累到下一步,且具有優(yōu)秀的起停和

6、反轉(zhuǎn)響應(yīng);方案二,直流電機價格低,調(diào)速范圍廣,易于平滑調(diào)節(jié),過載、起動、制動轉(zhuǎn)矩大,難于控制轉(zhuǎn)軸的角度和轉(zhuǎn)速;方案三,舵機價格偏高,性能易受電壓影響,控制旋轉(zhuǎn)的角度精確度不高。鑒于設(shè)計要求,故采用方案一。2.3 驅(qū)動模塊的選擇與論證方案一:采用 L298N 芯片方案二:采用 ULN2803 芯片方案三:采用三極管方案論證:方案一,L298N 芯片價格廉價,電路設(shè)計簡單,驅(qū)動電流大,足以驅(qū)動大功率的步進電機;方案二,ULN2803 芯片價格廉價,電路設(shè)計簡單,驅(qū)動電流小,不能驅(qū)動大功率的步進電機;方案三,三極管價格廉價,驅(qū)動電路設(shè)計復(fù)雜,不穩(wěn)定,出問題難于查詢。本設(shè)計采用 PK545-NAC-C

7、29 步進電機,故采用方案一。3系統(tǒng)硬件設(shè)計系統(tǒng)硬件設(shè)計3.1 總體電路框圖為了使系統(tǒng)能夠?qū)崿F(xiàn)各種復(fù)雜的控制功能,本設(shè)計采用一種功能強大的、高速低功耗性價比高的單片機 STC12C5A60S2 完成對其他局部控制。本設(shè)計采用N1000060 傾角傳感器對擺桿的傾斜角度的采集數(shù)據(jù),通過 STC12C5A60S2 單片機內(nèi)部自帶的 A/D 轉(zhuǎn)換將數(shù)據(jù)送給單片機,單片機通過數(shù)據(jù)分析控制 L298N 驅(qū)動電路,使步進機旋轉(zhuǎn)保持平板的水平平衡,用 1602 液晶顯示 A/D 的數(shù)據(jù)??傮w框圖如圖 3-1 所示。電 源單片機驅(qū)動模塊步進機液 晶 顯 示傳感器AD模塊圖 3-1 總體框圖3.2 單元電路設(shè)計

8、1、STC12C5A60S2 單片機最小系統(tǒng)STC12C5A60S2 單片機最小系統(tǒng) P11 口、P12 口、P13、P14 口接 L298 驅(qū)動電流的輸入口,單片機通過對 L298N 的控制,使 L298 發(fā)出脈沖控制步進機;P23 口、P24 口、P25 口接 1602 液晶,控制液晶顯示 A/D 采集 N1000060 傾角傳感器的數(shù)據(jù),A/D 轉(zhuǎn)換是用 STC12C5A60S2 內(nèi)部自帶的 A/D。單片機最小系統(tǒng)如圖 3-2、3-3 所示。圖 3-2 最小系統(tǒng)圖 3-3 串口局部2、L298N 電機驅(qū)動L298N 是一種二相四相步電機的專用驅(qū)動器,內(nèi)含兩個 H-Bridge 的高電壓、

9、大電流雙橋式驅(qū)動器,接收標準;OUT1、OUT2、OUT3、OUT4 之間分別接兩個步進機;INPUT1、INPUT2、INPUT3、INPUT4 接單片機 I/O,接收輸入控制電位來控制電機旋轉(zhuǎn)。L298N 驅(qū)動電路如圖 3-4 所示。圖 3-4 L298N 驅(qū)動3、供電電源供電電源采用集成穩(wěn)壓器 7805,電路圖中,穩(wěn)壓器 7805 輸入端的電容為輸入端濾波電容,輸出端的電容為輸出端濾波電容;家用電 220V 經(jīng)過變壓器接入供電電源模塊,能輸出直流電壓-12V、-5V、5V、12V。供電電源如圖 3-5 所示。圖 3-5 供電電源3.3 整體電路圖見附錄 A4系統(tǒng)軟件設(shè)計系統(tǒng)軟件設(shè)計4.1

10、 總體軟件框圖 1、總體軟件框圖如圖 4-1 所示。 圖 4-1 總體軟件框圖初始化讀傾角傳感器電壓A/D 轉(zhuǎn)換單片機處理讀到的 A/D 數(shù)據(jù)控制驅(qū)動電機轉(zhuǎn)動平板是否水平否結(jié)束是4.2 各模塊軟件設(shè)計1、步進電機右轉(zhuǎn)函數(shù)void l_turn(uint i)/步進電機右轉(zhuǎn)函數(shù)AA;delay_ms(i);AB;delay_ms(i);BB;delay_ms(i);BC;delay_ms(i);CC;delay_ms(i);CD;delay_ms(i);DD;delay_ms(i);DA;delay_ms(i);2、步進電機左轉(zhuǎn)函數(shù)void r_turn(uint i)/步進電機左轉(zhuǎn)函數(shù)DA;d

11、elay_ms(i);DD;delay_ms(i);CD;delay_ms(i);CC;delay_ms(i);BC;delay_ms(i);BB;delay_ms(i);AB;delay_ms(i);AA;delay_ms(i);3、STC12C5A60S2 內(nèi)部 AD BYTE get_ad0()/AD 讀取傳感器 1 的值A(chǔ)DC_CONTR=ADC_POWER|ADC_SPEEDLL|ch0|ADC_START;_nop_();_nop_();_nop_(); _nop_(); while(!(ADC_CONTR&ADC_FLAG);return ADC_RES;BYTE get

12、_ad5()/AD 讀取傳感器 2 的值A(chǔ)DC_CONTR=ADC_POWER|ADC_SPEEDLL|ch5|ADC_START;_nop_();_nop_();_nop_(); _nop_(); while(!(ADC_CONTR&ADC_FLAG);return ADC_RES;4.3 總程序 見附錄 D5系統(tǒng)調(diào)試與測試系統(tǒng)調(diào)試與測試5.1 測試儀器1、數(shù)字萬用表2、量角器 5.2 測試指標當 N100060 傾角傳感器與水平方向有角度時,N100060 傾角傳感器會產(chǎn)生一個一壓,STC12C5A60S2 單片機通過內(nèi)部自帶 AD 轉(zhuǎn)換采集 N100060 反應(yīng)的電壓值。每個電壓

13、值對應(yīng)一個角度,通過量角器測出角度,列出表格。如表格 5-1所示。表 5-1 角度-90-60-45-30030456090AD 值512傾角傳感器5.3 測試結(jié)果分析從表格 5-1 可得:傾角傳感器與水平方向平行時,輸出電壓是 2.5V;向左右與水平方向傾斜 90 度時,其電壓的變化量為 2V。由此可得誤差允許范圍內(nèi)傾角傳感器與水平方向的角度 a 與傾角傳感器的電壓變化量 v 的數(shù)學(xué)關(guān)系為:v=a(1/45)本設(shè)計采用 4 相 6 線 PK545-NAC-C29 步進電機,4 相 8 拍運行方式 A-AB-B-BC-C-CD-D-DA-A,對應(yīng)一個脈沖信號,步距角為 =360 度/50*8=

14、0.9 度俗稱半步 。本設(shè)計把 N100060 傾角傳感器固定在步進電機上,與水平方向平行,當擺桿有一個角度時,STC12C5A60S2 單片機內(nèi)部自帶 AD 讀取 N1000060 傾角傳感器電壓值,就能精確控制步進電機的轉(zhuǎn)動角度,使步進電機上的平板保持平衡。如:當 STC12C5A60S2 單片機內(nèi)部自帶 AD 讀取 N1000060 傾角傳感器電壓值為3.5V 時,其 N1000060 傾角傳感器電壓變化量為 v=1V,通過上式計算得N100060 傾角傳感器與水平方向的角度 a 為 45 度,從而就能控制步進電機旋轉(zhuǎn)45 度,使步進電機上的平板保持平衡。6設(shè)計總結(jié)設(shè)計總結(jié)經(jīng)過四天三夜的

15、辛勤努力,本設(shè)計實現(xiàn)了題目的全部要求。但由于時間緊,任務(wù)重,系統(tǒng)還存在許多可以改良的地方,比方電路布局、抗干擾性等方面還有很大的提升空間,經(jīng)過改良,相信性能還會有進一步的提升。在軟件編程方面,成功的通過軟件編程消除了步進電機的抖動問題,采用的方法是:通過 A/D 轉(zhuǎn)換采集傾角傳感器的數(shù)據(jù),10 個數(shù)據(jù)一組,然后取平均值。本次競賽極大的鍛煉了我們各方面的能力,雖然我們遇到了很多困難和障礙,但總體上成功與挫折交替,困難與希望并存,我們將繼續(xù)努力爭取更大的進步。參考文獻參考文獻1毛禮銳,沈灌群.中國教育通史M.濟南:山東教育出版社,1988.20-22.2王英杰,高益民.高等教育的國際化J.清華大學(xué)

16、教育研究,20002:13-16.3中華人民共和國國務(wù)院.計算機軟件保護條例J/0L.東方網(wǎng)附錄附錄附錄 A:電路圖附錄 A-1附錄 A-2附錄 B:電路板圖附錄 B-1附錄 C:元器件清單電阻6 個瓷片電容12 個電解電容4 個鍵盤6 個單片機1 個開關(guān)2 個L298N1 個穩(wěn)壓 78051 個穩(wěn)壓 78121 個N10000602 個步進電機1 個MS2321 個串口1 個電位器1 個整流橋1 個變壓器1 個發(fā)光二極管4 個二極管8 個 附錄 D:總程序#include #include#define uint unsigned int#define uchar unsigned char

17、typedef unsigned char BYTE;typedef unsigned int WORD;sfr ADC_CONTR=0 xBC;sfr ADC_RES=0 xBD;sfr ADC_RESL=0 xBE;sfr ADC_LOW2=0 xBE;sfr P1ASF=0 x9D;#define ADC_POWER 0 x80#defineADC_FLAG 0 x10#defineADC_START 0 x08#defineADC_SPEEDLL 0 x00#defineADC_SPEEDL 0 x20#defineADC_SPEEDH 0 x40#defineADC_SPEEDHH

18、0 x60sbit en=P25;/使能sbit rs=P23;/數(shù)據(jù)命令sbit rw=P24;/讀寫/定義步進電機連接端口sbit A1=P11;/轉(zhuǎn)三周sbit B1=P12;/轉(zhuǎn)四周sbit C1=P13;/轉(zhuǎn)五周sbit D1=P14;/來回擺動/定義要用到按鍵的管腳sbit k1=P34;sbit k2=P35;sbit k3=P36;sbit k4=P37;/定義全局變量uint su=20;/8 最大uint j=0;uint jian_zhi=0;uint temp1=0;uchar shu=0,1,2,3,4,5,6,7,8,9,-,:, ;uint i=6;uint ch

19、ong1=0;uint su1=20;/8 最大uint su2=20;uint m=0;uint ad=0;uint ad0=0;uint j1=0;uint j2=0;uint ad5=0;BYTE ch0=0; /模擬通道選擇BYTE ch5=5;uint er_flag=0;/使用 1-2 相驅(qū)動#define AA A1=1;B1=0;C1=0;D1=0;#define BB A1=0;B1=1;C1=0;D1=0;#define CC A1=0;B1=0;C1=1;D1=0;#define DD A1=0;B1=0;C1=0;D1=1;#define AB A1=1;B1=1;C1

20、=0;D1=0;#define BC A1=0;B1=1;C1=1;D1=0;#define CD A1=0;B1=0;C1=1;D1=1;#define DA A1=1;B1=0;C1=0;D1=1;/函數(shù)聲明void delay_ms(uint x);void r_turn(uint i);void l_turn(uint i);void delay(WORD n)WORD x;while(n-)x=110;while(x-);void delay_ms(uint x)/延時函數(shù)uint y,z;for(y=x;y0;y-)for(z=130;z0;z-);void l_turn(uint

21、 i)/步進電機右轉(zhuǎn)函數(shù)AA;delay_ms(i);AB;delay_ms(i);BB;delay_ms(i);BC;delay_ms(i);CC;delay_ms(i);CD;delay_ms(i);DD;delay_ms(i);DA;delay_ms(i);void r_turn(uint i)/步進電機左轉(zhuǎn)函數(shù)DA;delay_ms(i);DD;delay_ms(i);CD;delay_ms(i);CC;delay_ms(i);BC;delay_ms(i);BB;delay_ms(i);AB;delay_ms(i);AA;delay_ms(i);void l_dan()switch(m

22、)case 0:AA;m+;break;case 1:AB;m+;break;case 2:BB;m+;break;case 3:BC;m+;break;case 4:CC;m+;break;case 5:CD;m+;break;case 6:DD;m+;break;case 7:DA;m+;break;case 8:m=0;break;default :break;void r_dan()switch(m)case 0:DA;m+;break;case 1:DD;m+;break;case 2:CD;m+;break;case 3:CC;m+;break;case 4:BC;m+;break

23、;case 5:BB;m+;break;case 6:AB;m+;break;case 7:AA;m+;break;case 8:m=0;break;default :break;void ting_zhi()A1=0;B1=0;C1=0;D1=0;/LCD1602 初始化void write_com(uchar com)rs=0;P0=com;delay(1);en=1;delay(1);en=0;void write_data(uchar datae)rs=1;P0=datae;delay(5);en=1;delay(5);en=0;void display_shu(uchar hang,

24、uchar add,uchar num)/在 1602 顯示數(shù)據(jù)的函數(shù),hang 為第幾行,add 為位置,num 為數(shù)據(jù)uchar shi;shi=num;if(hang=1)write_com(0 x80+add);write_data(0 x30+shi);if(hang=2)write_com(0 x80+0 x40+add);write_data(0 x30+num);void init_LCD()/初始化en=0;rw=0;write_com(0 x38);/顯示模式控制write_com(0 x0c);/顯示開關(guān)及光標控制write_com(0 x06);/數(shù)據(jù)指針設(shè)置write

25、_com(0 x01);/清零write_com(0 x80);void InitADC()P1ASF=0 x21;/輸入通道選擇與 CH 相配合使用,選擇 P12ADC_RES=0; /轉(zhuǎn)化的數(shù)據(jù)存儲所在,高八位ADC_CONTR=ADC_POWER|ADC_SPEEDLL; /內(nèi)部 AD 主要的控制存放器 ADC_CONTR,選擇 P12;delay(100);BYTE get_ad0()/AD 讀取傳感器 1 的值A(chǔ)DC_CONTR=ADC_POWER|ADC_SPEEDLL|ch0|ADC_START;_nop_();_nop_();_nop_(); _nop_(); while(!(ADC_CONTR&ADC_FLAG);return ADC_RES;BYTE get_ad5()/AD 讀取傳感器 2 的值A(chǔ)DC_CONTR=ADC_POWER|ADC_SPEEDLL|ch5|ADC_START;_nop_();_nop_();_nop_(); _nop_(); while(!(ADC_CONTR&ADC_FLAG);return ADC_RES;void keyscan()if(k1=0)delay(5);if(k1=0)while(!k1);display_shu(1,1,1);su=32;j=150;while(j-)r_turn(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論