08通信何琛畢業(yè)論文_第1頁
08通信何琛畢業(yè)論文_第2頁
08通信何琛畢業(yè)論文_第3頁
08通信何琛畢業(yè)論文_第4頁
08通信何琛畢業(yè)論文_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、科技學(xué)院2011屆本科畢業(yè)論文基于arduino的步進(jìn)電機的控制設(shè)計專 業(yè): 通 信 工 程 指導(dǎo)教師: 周 驊 學(xué)生姓名: 何 琛 學(xué)生學(xué)號: 082004110499 中國貴州貴陽2012年5月目錄摘要iiiabstractiv第一章 緒論11.1設(shè)計背景及意義11.2 現(xiàn)狀和發(fā)展趨勢21.3 設(shè)計內(nèi)容及目標(biāo)2第二章 采用技術(shù)簡介32.1 arduino概述32.1.1 arduino的特色32.1.2 arduino語言基本結(jié)構(gòu)42.1.3 開發(fā)一個項目的基本流程42.2 arduino duemilanove簡介52.3 easydriver簡介62.4 步進(jìn)電機簡介72.5 步進(jìn)電機

2、的工作原理82.5.1.電機固有步距角82.5.2步進(jìn)電機的相數(shù)82.5.3 保持轉(zhuǎn)矩(holding torque)82.5.4 detent torque:9第三章 控制步進(jìn)電機設(shè)計103.1 方案論證103.2 系統(tǒng)總體結(jié)構(gòu)103.3 系統(tǒng)設(shè)計使用芯片123.4 系統(tǒng)工作原理133.5 步進(jìn)電機控制程序133.6 系統(tǒng)設(shè)計實體圖163.7 實驗問題及解決16第四章 總結(jié)與展望184.1 總結(jié)184.2 展望18參考文獻(xiàn)19致謝20基于arduino的步進(jìn)電機控制系統(tǒng)摘要近年來隨著科學(xué)技術(shù)的不斷提高,arduino的應(yīng)用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月異更新。隨著國民經(jīng)濟(jì)的快

3、速發(fā)展,有很多平臺可以控制步進(jìn)電機,目前的步進(jìn)電機控系統(tǒng)大多采用plc控制器或8051單片機來控制。plc控制器是一款可編程邏輯控制器,它工作環(huán)境要求低,操作簡單,穩(wěn)定性也比較好,但是它的成本很高。而8051單片機雖然成本較低,靈活性很好,但是8051單片機的工作環(huán)境要求較高,操作起來也復(fù)雜得多。在本設(shè)計介紹了arduino控制步進(jìn)電機的系統(tǒng)。在科技高速發(fā)展的今天,電動機一直在現(xiàn)代化的生產(chǎn)和生活中起著十分重要的作用。步進(jìn)電機是機電控制中常用的一種執(zhí)行機構(gòu),其原理是通過對它的每相線圈中的電流和順序切換來使步進(jìn)電機轉(zhuǎn)動。本系統(tǒng)的硬件組成主要有:arduino duemilanove微控制器板、ea

4、sydriver驅(qū)動、12v直流電源和電腦。本設(shè)計用easydriver驅(qū)動與arduino duemilanove微控制器板、12v直流外接電源連接,并用arduino duemilanove微控制器板與電腦連接,用程序控制步進(jìn)電機實現(xiàn)轉(zhuǎn)向、轉(zhuǎn)速等控制。本設(shè)計具有結(jié)構(gòu)簡單、可靠性強、操作簡單、程序設(shè)計簡便和實用性強等特點,具有較高的通用性和應(yīng)用推廣價值。關(guān)鍵詞:arduino; easydriver;步進(jìn)電機based on the arduino stepping motor control systemabstractin recent years, with the science a

5、nd technology unceasing enhancement, the application of the arduino is continuously to the deepening, and push the traditional control test rapidly updated. along with the rapid economic development, there are many platform can control the stepping motor, the current step electric system equipped mo

6、st plc controller is used to control or the single chip microcomputer 8051. plc controller is a programmable logic controller, it working environment low demand, simple operation, and stability are relatively good, but its very expensive. and the single chip microcomputer 8051 although cost is low,

7、flexibility is good, but the single chip microcomputer 8051 work environment of the demand is higher, operate up also is much more complicated.in this design introduced the arduino control the step motor system. the high speed of development in science and technology today, motor has been the modern

8、ization of production and life plays a very important role. stepping motor is mechanical and electrical control of a common actuators, its principle is to it through of each phase is the current coil switch and order to make stepping motor rotation. this system hardware mainly has: arduino duemilano

9、ve micro controller board, easydriver drive, 12 v dc power and computer. this design with easydriver drive and arduino duemilanove micro controller board, 12 v dc external power supply connection, and arduino duemilanove micro controller board connected with the computer, with process control steppi

10、ng motor rotation speed control to realize,. this design is simple in structure, reliability, simple operation, convenient and practical program design characteristics, it is of high popularization value universality and application.keywords: arduino; easydriver; stepping motor第一章 緒論1.1設(shè)計背景及意義在科技飛速發(fā)

11、展的今天,出現(xiàn)了各種嵌入式硬件平臺,而arduino是一款相對價格不高、易于使用的嵌入式硬件平臺。arduino是一塊基于開放源代碼的usb接口simple i/o接口板,包括12通道數(shù)字gpio,4通道pwm輸出,6-8通道10bit adc輸入通道,并且具有使用類似java,c語言的ide集成開發(fā)環(huán)境。包括硬件和軟件在內(nèi)的整個平臺是完全開源的,并且使用的是松散地基于c/c+的語言。arduino是為希望嘗試創(chuàng)建交互式物理對象的實踐者、喜歡創(chuàng)造發(fā)明的人構(gòu)建的。arduino可以作為一塊atmegaxx8系列單片機開發(fā)板使用,可以連接多種電子元件外設(shè),其中就有步進(jìn)電機。步進(jìn)電機是一種將電脈沖信

12、號轉(zhuǎn)換成相應(yīng)的角位移或線位移的電磁機械裝置,是一種輸出與輸入數(shù)字脈沖對應(yīng)的增量驅(qū)動元件,具有快速啟動和停止的能力。當(dāng)負(fù)荷不超過步進(jìn)電機所提供的動態(tài)轉(zhuǎn)矩值時,它就可能在一瞬間實現(xiàn)啟動和停止。它的步矩角和轉(zhuǎn)速不受電壓波動和負(fù)載變化的影響,也不受環(huán)境條件(如溫度、氣壓、沖擊和振動等)的影響,僅與脈沖頻率有關(guān)。它每轉(zhuǎn)1 周步數(shù)都事固定的,在不丟步的情況下運行,它的步距誤差不會長期積累。正是因為步進(jìn)電機具備上述優(yōu)點,它已經(jīng)被廣泛地用于自動控制系統(tǒng)中作為執(zhí)行元件。隨著科學(xué)技術(shù)的不斷提高,有很多平臺可以控制步進(jìn)電機,目前的步進(jìn)電機控系統(tǒng)大多采用plc控制器或8051單片機來控制。plc控制器是一款可編程邏輯

13、控制器,它工作環(huán)境要求低,操作簡單,穩(wěn)定性也比較好,但是它的成本很高。而8051單片機雖然成本較低,靈活性很好,但是8051單片機的工作環(huán)境要求較高,操作起來也復(fù)雜得多。而arduino的開發(fā)板不僅成本較低,而且靈活性很好,同時它操作也很簡單,因為它有一個簡單的開發(fā)環(huán)境,底層的函數(shù)不用自己寫,已經(jīng)有集成的函數(shù)可以直接調(diào)用。因此開發(fā)和研制利用arduino的開發(fā)板來控制步進(jìn)電機的控制系統(tǒng)是十分必要的。本文是以arduino作為主系統(tǒng)控制步進(jìn)電機轉(zhuǎn)的圈數(shù)以及控制電機的啟動和停止、正反轉(zhuǎn)。 1.2 現(xiàn)狀和發(fā)展趨勢在科技飛速發(fā)展的今天,出現(xiàn)了各種嵌入式硬件平臺,而arduino是一款相對價格不高、易于

14、使用的嵌入式硬件平臺。arduino是一塊基于開放源代碼的usb接口simple i/o接口板,包括12通道數(shù)字gpio,4通道pwm輸出,6-8通道10bit adc輸入通道,并且具有使用類似java,c語言的ide集成開發(fā)環(huán)境。包括硬件和軟件在內(nèi)的整個平臺是完全開源的,并且使用的是松散地基于c/c+的語言。arduino是為希望嘗試創(chuàng)建交互式物理對象的實踐者、喜歡創(chuàng)造發(fā)明的人構(gòu)建的。arduino可以作為一塊atmegaxx8系列單片機開發(fā)板使用,可以連接多種電子元件外設(shè),其中就有步進(jìn)電機。步進(jìn)電機是一種將電脈沖信號轉(zhuǎn)換成相應(yīng)的角位移或線位移的電磁機械裝置,是一種輸出與輸入數(shù)字脈沖對應(yīng)的增

15、量驅(qū)動元件,具有快速啟動和停止的能力。當(dāng)負(fù)荷不超過步進(jìn)電機所提供的動態(tài)轉(zhuǎn)矩值時,它就可能在一瞬間實現(xiàn)啟動和停止。它的步矩角和轉(zhuǎn)速不受電壓波動和負(fù)載變化的影響,也不受環(huán)境條件(如溫度、氣壓、沖擊和振動等)的影響,僅與脈沖頻率有關(guān)。它每轉(zhuǎn)1 周步數(shù)都事固定的,在不丟步的情況下運行,它的步距誤差不會長期積累。正是因為步進(jìn)電機具備上述優(yōu)點,它已經(jīng)被廣泛地用于自動控制系統(tǒng)中作為執(zhí)行元件。1.3 設(shè)計內(nèi)容及目標(biāo)本設(shè)計是以arduino作為主系統(tǒng)控制步進(jìn)電機轉(zhuǎn)的圈數(shù)以及控制電機的啟動和停止、正反轉(zhuǎn)。使得系統(tǒng)達(dá)到對步進(jìn)電機的啟動、停止、正轉(zhuǎn)、反轉(zhuǎn)和運行距離的控制。隨著科學(xué)技術(shù)的不斷提高,目前有很多平臺可以作為

16、驅(qū)動控制步進(jìn)電機,目前的步進(jìn)電機控制系統(tǒng)大多采用plc控制器或8051單片機來控制。plc控制器是一款可編程邏輯控制器,它工作環(huán)境要求低,操作簡單,穩(wěn)定性也比較好,但是它的成本很高。而8051單片機雖然成本較低,靈活性很好,但是8051單片機的工作環(huán)境要求較高,操作起來也復(fù)雜得多。而arduino的開發(fā)板不僅成本較低,而且靈活性很好,同時它操作也很簡單,可以說它是集8051單片機和plc控制器的優(yōu)點于一身的開發(fā)平臺。它有一個簡單的開發(fā)環(huán)境,底層的函數(shù)不用自己寫,已經(jīng)有集成的函數(shù)可以直接調(diào)用。因此開發(fā)和研制利用arduino的開發(fā)板來控制步進(jìn)電機的控制系統(tǒng)是十分必要的。第二章 采用技術(shù)簡介2.1

17、 arduino概述“arduino”源自11世紀(jì)北意大利國王的名字。這個開發(fā)項目最早是由massimo banzi、daviod cuartielles、david mellis和 nichoals zambetti等人發(fā)起,目前已經(jīng)有許多不同版本。arduino是一塊基與開放原始代碼的simple i/o 平臺,它具有使用類似java,c 語言的語言開發(fā)環(huán)境??梢允褂胊rduino語言與flash或processing等軟件,作出互動作品。arduino 能夠使用開發(fā)完成的電子元件例如switch或sensors 或其他控制器、步進(jìn)電機、led、紅外傳感器或其他輸出裝置。不僅如此,ardu

18、ino還能夠獨立運作成為一個可以跟軟件溝通的平臺,例如說:flash、processing、max/msp、vvvv 或其他互動軟件arduino所有的軟件與硬件資源都可以在網(wǎng)絡(luò)上找到,而且它基于開放源碼的概念,讓我們可以以arduino為基礎(chǔ),擴(kuò)展各種硬件。arduino的結(jié)構(gòu)如圖2.1所示。圖2.1 arduino結(jié)構(gòu)圖2.1.1 arduino的特色1、開放源代碼的電路圖設(shè)計,程序開發(fā)接口和編程軟件免費下載,也可依照自己的需求進(jìn)行修改。2、使用低價格的微處理控制器(atmega128或atmega8)。不需使用外接電源,可以直接采用usb接口供電。當(dāng)然也可以使用外部9vdc輸入。3、ar

19、duino支持isp在線燒板,可以將新的“bootloader”燒入atmega8或atmega128芯片。有了bootloader之后,可以通過usb線更新固件。4、可依據(jù)官方網(wǎng)站提供的eagle格式pcb和sch電路圖,簡化arduino模組,完成獨立運作的微處理控制??珊唵蔚嘏c傳感器或各式各樣的電子元件連接(例如:紅外線、藍(lán)牙、超音波、光敏電阻、熱敏電阻、步進(jìn)電機、伺服馬達(dá)等)。5、支持多種互動程序,如:flash、pd、max/msp、processing、vvvv、c/c+等。6、應(yīng)用方面,利用arduino可以突破以往只能使用鍵盤、鼠標(biāo)、ccd等輸入的裝置的互動內(nèi)容,能夠更簡單地達(dá)

20、成單人或多人游戲互動。2.1.2 arduino語言基本結(jié)構(gòu)arduino語言是建立在c/c+基礎(chǔ)上的,其實也就是基礎(chǔ)的c語言,arduino語言只不過把avr單片機(微控制器)相關(guān)的一些寄存器參數(shù)設(shè)置等都函數(shù)化了,不用我們?nèi)チ私馑牡讓?,可以直接調(diào)用。 arduino中最基本的兩個結(jié)構(gòu):void setup()和void loop()。void setup()用以初始化變量,引腳模式,調(diào)用庫函數(shù)等。在運行過程中僅調(diào)用一次,即在最開始的開啟階段或者在重啟階段被調(diào)用。void loop()用于在setup被創(chuàng)建之后,連續(xù)執(zhí)行該函數(shù)內(nèi)的語句。即寫在loop函數(shù)中的元素會被重復(fù)性的執(zhí)行,以實現(xiàn)程序的

21、狀態(tài)改變與回應(yīng),從而動態(tài)的控制arduino板。2.1.3 arduino的基本參數(shù)1.微控制器核心:avrmega168-20pu(處理速度可20mips)2.外部輸入電壓:7v12v(建議)3.工作電壓:+5v4.外部輸入電壓(極值):+6vvin20v5.數(shù)字信號 i/o 接口:14個(其中有6個pwm輸出口)6.模擬信號輸入接口:6個7.dc i/o 接口電流:40 ma8.flash 容量:16 kb (其他 2k 用bootloader)9.sram 靜態(tài)存儲容量:1kb10.eeprom 存儲容量:512 bytes11.時鐘頻率:16mhz2.1.4 arduino開發(fā)環(huán)境的安

22、裝于使用1.準(zhǔn)備 arduion 板和 usb 線2.下載軟件環(huán)境下載完畢后,解壓縮.3. usb 線將電腦和 arduino 板連接起來.可以發(fā)現(xiàn)綠燈閃爍4. 安裝驅(qū)動程序(1)進(jìn)入新的硬件向?qū)В?2)選擇“是”,點擊下一步;(3)選擇“從列表或指定位置安裝”,點擊下一步;(4)選擇“在這些位置上搜索最佳驅(qū)動程序”“在搜索中包括這個位置”指定目錄:剛解壓縮軟件目錄下的driversftdi usb drivers(比如:d:arduinoarduino-0021 driversftdi usb drivers),點擊下一步;(5)點擊“完成”;5.直接雙擊編譯軟件arduino;6.選擇“f

23、ileexamples任意一個”7.選擇“toolsboard對應(yīng)的arduino板”8.選擇“toolsserial port對應(yīng)的端口”9.選擇“verify”,軟件自動查錯10.對程序中的錯誤進(jìn)行修改11.循環(huán)執(zhí)行910,直到顯示無錯誤12.選擇“upioad”,軟件將程序燒入arduino板中自動運行2.2 arduino duemilanove簡介arduino duemilanove是基于atmega168 ( datasheet ) 或 atmega328 ( datasheet )上的一個微控制器板。它有14個數(shù)字輸入/輸出引腳(其中有6個引腳用于pwm輸出),6個模擬輸入、1

24、個16mhz的晶體振蕩器、1個電源插孔、1個usb接頭、1個icsp插頭和1個復(fù)位按鈕。它包含支持微控制器運行所需的一切,只需要用usb線連接到電腦或電源a ac-dc適配器就可以使用了。它的工作電壓為5v,每個i/o引腳需要40ma的直流電流。圖2.2 arduino duemilanove微控制器2.3 easydriver簡介一個easydriver 能夠為兩級步進(jìn)電機提供大約每相750ma的驅(qū)動。它被設(shè)置為固定的8步細(xì)分模式。即本設(shè)計中選用的是每圈200步的步進(jìn)電機,使用easydriver時每圈為1600步。這是一種基于allegro a3967驅(qū)動芯片的細(xì)分?jǐn)嗦菲鳌asydriv

25、er的最大電流從150ma到750ma,它可以采用最大驅(qū)動電壓大約為30v,其中包括板載5v的調(diào)壓器,所以只需要一個電源。easydriver的實物圖如圖2.3圖2.3 easydriver實物圖easydriver中主要的芯片是a3967slb。a3967slb是一個完整的微步內(nèi)置式電動機的驅(qū)動器。它的設(shè)計可操作雙極步進(jìn)電機在全,半,季,和第八步模式下運行。它的輸出驅(qū)動電壓為30v,電流為750ma。a3967slb包括一個固定的監(jiān)控系統(tǒng),可以通過對電流脈沖間隔調(diào)節(jié)步進(jìn)電機轉(zhuǎn)動速度的快慢。a3967slb具有電流衰減控制,電流衰減控制能減少發(fā)聲馬達(dá)噪音,增加步進(jìn)電機的步進(jìn)精度,并降低功耗。a

26、3967slb易于實現(xiàn)語言的轉(zhuǎn)換。在step輸入,只需輸入一個脈沖,電機走一步(全,半,季,或第八取決于兩個邏輯輸入)。它有沒有相位順序表、高頻率控制行或復(fù)雜的程序接口。a3967slb運用較簡單的芯片,是對初學(xué)者和不喜歡復(fù)雜編程的人們的理想選擇。a3967slb有24個銅制的引腳,不需要在固定溫度下運行,a3967slb的實物圖如圖2.3.1所示。圖2.3.1 a3967slb實物圖2.4 步進(jìn)電機簡介步進(jìn)電機步進(jìn)電機也叫步進(jìn)器,是一種將電脈沖信號轉(zhuǎn)換成相應(yīng)的角位移或線位移的電磁機械裝置,是一種輸出與輸入數(shù)字脈沖對應(yīng)的增量驅(qū)動元件,具有快速啟動和停止的能力。當(dāng)負(fù)荷不超過步進(jìn)電機所提供的動態(tài)轉(zhuǎn)

27、矩值時,它就可能在一瞬間實現(xiàn)啟動和停止。它的步矩角和轉(zhuǎn)速不受電壓波動和負(fù)載變化的影響,也不受環(huán)境條件(如溫度、氣壓、沖擊和振動等)的影響,僅與脈沖頻率有關(guān)。它每轉(zhuǎn)1 周步數(shù)都事固定的,在不丟步的情況下運行,它的步距誤差不會長期積累。正是因為步進(jìn)電機具備上述優(yōu)點,它已經(jīng)被廣泛地用于自動控制系統(tǒng)中作為執(zhí)行元件。人們早在90年前就開始使用這種電機。隨著嵌入式系統(tǒng)(例如打印機、磁盤驅(qū)動器、玩具、雨刷、震動尋呼機和錄像機等)的日益流行,步進(jìn)電機的使用也開始越來越頻繁的出現(xiàn)在我們的生活中。不論在工業(yè)、軍事、醫(yī)療、汽車還是娛樂業(yè)中,只要是需要把某件物體從一個位置移動到另一個位置的時候,步進(jìn)電機就一定能派上用

28、場。步進(jìn)電機有許多種形狀和尺寸,但不論形狀和尺寸如何,步進(jìn)電機都可分為三類:永磁式(pm) ,反應(yīng)式(vr)和混合式(hb):1. 永磁式步進(jìn)電機一般為兩相步進(jìn)電機,轉(zhuǎn)矩和體積都較小,步進(jìn)角一般為7.5度或15度;2. 反應(yīng)式步進(jìn)電機一般為三相步進(jìn)電機,可實現(xiàn)大轉(zhuǎn)矩輸出,步進(jìn)角一般為1.5度。它的噪聲和振動都很大。它的轉(zhuǎn)子磁路由軟磁材料制成,定子上有多相勵磁繞組,利用磁導(dǎo)的變化產(chǎn)生轉(zhuǎn)矩。3. 混合式步進(jìn)電動機綜合了反應(yīng)式、永磁式步進(jìn)電動機兩者的優(yōu)點,它的動態(tài)性能好、步距角小、出力大,是目前性能最高的步進(jìn)電動機。它有時也稱作永磁感應(yīng)子式步進(jìn)電動機?;旌鲜讲竭M(jìn)電機又分為兩相步進(jìn)電機和五相步進(jìn)電機:

29、混合式兩相步進(jìn)電機的步進(jìn)角一般為1.8度,而混合式五相步進(jìn)電機的步進(jìn)角一般為 0.72度。這種步進(jìn)電機的應(yīng)用最為廣泛。本設(shè)計中使用的是混合式步進(jìn)電機。2.5 步進(jìn)電機的工作原理工作原理是利用電子電路,將直流電變成分時供電的多相時序控制電流,用這種電流為步進(jìn)電機供電,步進(jìn)電機才能正常工作。驅(qū)動器就是為步進(jìn)電機分時供電的多相時序控制器。2.5.1電機固有步距角當(dāng)步進(jìn)電機的驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進(jìn)電機按設(shè)定的方向轉(zhuǎn)動一個固定的角度,稱為“步距角”,它的旋轉(zhuǎn)方式是以固定的角度一步一步運行的??梢酝ㄟ^控制脈沖的個數(shù)來控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時可以通過控制脈沖頻率(即每個脈沖

30、的間隔時間)來控制步進(jìn)電機轉(zhuǎn)動的速度和加速度,從而達(dá)到調(diào)整步進(jìn)電機轉(zhuǎn)動速度的目的。電機出廠時給出了一個步距角的值,如86byg250a型電機給出的值為0.9/1.8(表示半步工作時為0.9、整步工作時為1.8),這個步距角可以稱之為電機固有步距角,它不一定是電機實際工作時的真正步距角,真正的步距角和驅(qū)動器有關(guān)。通常步進(jìn)電機步距角的一般計算按下式計算。=360/(zmk)式中 步進(jìn)電機的步距角;z轉(zhuǎn)子齒數(shù);m步進(jìn)電動機的相數(shù);k控制系數(shù),是拍數(shù)與相數(shù)的比例系數(shù)2.5.2步進(jìn)電機的相數(shù)步進(jìn)電機的相數(shù)是指電機內(nèi)部的線圈組數(shù),目前常見的有二相、三相、四相、五相步進(jìn)電機。步進(jìn)電機相數(shù)不同,其步距角也不同

31、,一般二相電機的步距角為0.9/1.8、三相的為0.75/1.5、五相的為0.36/0.72。在沒有細(xì)分驅(qū)動器時,用戶主要靠選擇不同相數(shù)的步進(jìn)電機來滿足自己步距角的要求。如果使用細(xì)分驅(qū)動器,則相數(shù)將變得沒有意義,用戶只需在驅(qū)動器上改變細(xì)分?jǐn)?shù),就可以改變步距角。2.5.3 保持轉(zhuǎn)矩(holding torque)保持轉(zhuǎn)矩(holding torque)是指步進(jìn)電機通電但沒有轉(zhuǎn)動時,定子鎖住轉(zhuǎn)子的力矩。它是步進(jìn)電機最重要的參數(shù)之一。步進(jìn)電機在低速時的力矩接近保持轉(zhuǎn)矩。由于步進(jìn)電機的輸出力矩隨速度的增大而不斷衰減,輸出功率也隨速度的增大而變化,所以保持轉(zhuǎn)矩就成為了衡量步進(jìn)電機最重要的參數(shù)之一。比如,

32、當(dāng)人們說2n.m的步進(jìn)電機,在沒有特殊說明的情況下是指保持轉(zhuǎn)矩為2n.m的步進(jìn)電機。2.5.4 detent torque:detent torque是指步進(jìn)電機沒有通電的情況下,定子鎖住轉(zhuǎn)子的力矩。由于反應(yīng)式步進(jìn)電機的轉(zhuǎn)子不是永磁材料,所以它沒有detent torque。第三章 控制步進(jìn)電機設(shè)計3.1 方案論證可控制步進(jìn)電機的平臺有很多種,其中常見的有51單片機和plc。51單片機具有內(nèi)部結(jié)構(gòu)簡單、體積小、成本低、擴(kuò)展性強等優(yōu)點,但是它的穩(wěn)定性差,抗干擾能力也較差,需要自己設(shè)計電路圖和編程,而且電路圖和編程都相當(dāng)?shù)膹?fù)雜,比如:很多的八位單片機都不具備乘法功能,作乘法時還得編上一段子程序調(diào)用

33、,十分不便。而51單片機控制起來也相當(dāng)?shù)牟环奖?,由于電路很?fù)雜,往往給檢修也帶來很大的不便,所以51單片機一般運用在家用電器和商業(yè)上。plc是可編程邏輯控制器programmable logic controller的簡稱,它具有抗干擾能力強、可靠性強、編程簡單的優(yōu)點,但是它的價格昂貴,而擴(kuò)展性差,結(jié)構(gòu)相對復(fù)雜,比較不容易學(xué)習(xí),所以plc往往只適用于大型工業(yè)設(shè)備。而arduino是一種目前比較先進(jìn)的技術(shù),它具有體積小、擴(kuò)展性強、結(jié)構(gòu)簡單、編程簡單、價格較低、可靠性高等優(yōu)勢,而且它不用自己設(shè)計電路圖,因此很容易學(xué)習(xí)??梢哉farduino是集51單片機和plc的優(yōu)點與一身的平臺,因此在本設(shè)計中我選

34、用了arduino作為控制步進(jìn)電機的平臺。在本設(shè)計中的控制器選擇了easydriver, 雖然l289n也可以實現(xiàn)步進(jìn)電機的控制,但是l298n接線與編程都比easydriver復(fù)雜很多。所以本設(shè)計選用了接線和編程都較簡單的easydriver控制器。3.2 系統(tǒng)總體結(jié)構(gòu)本設(shè)計對于步進(jìn)電機控制系統(tǒng)硬件部分按功能大致可以分為以下幾個部分:arduino duemilanove模塊、easydriver控制器、步進(jìn)電機和電源。首先將這幾樣器材通過焊接與導(dǎo)線連接起來,在將連接好的arduino duemilanove板通過usb數(shù)據(jù)線與電腦連接,在電腦上打開相對應(yīng)的arduino軟件,在arduin

35、o軟件中打開相對應(yīng)的c語音程序進(jìn)行查錯和修改。完成程序修改后進(jìn)行程序運行,并將c語音程序通過arduino軟件考入arduino duemilanove板中,這時可以看到步進(jìn)電機按照程序命令轉(zhuǎn)動起來。根據(jù)步進(jìn)電機的轉(zhuǎn)動快慢和正/反轉(zhuǎn)與圈數(shù)對程序進(jìn)行反復(fù)修改和考入,最終得到滿意的轉(zhuǎn)動效果。硬件總體結(jié)構(gòu)如圖3.2.1所示。結(jié)構(gòu)框圖如圖3.2.2所示。圖3.2.1 硬件總體結(jié)構(gòu)arduino程序arduino duemil-anoven模板easyd-river控制器12v直流電源步進(jìn)電機圖3.2.2 結(jié)構(gòu)框圖3.3 系統(tǒng)設(shè)計使用芯片在對于基于arduino系統(tǒng)設(shè)計實體中,使用的微控制器是ardui

36、no duemilanove,其arduino duemilanove微控制器實體圖如下圖3.3.1所示圖3.3.1 arduino duemilanove實物圖在本次設(shè)計中,使用的驅(qū)動是easydriver驅(qū)動器,其easydriver驅(qū)動器的實體圖如下圖3.3.2圖3.3.2 easydriver實物圖3.4 系統(tǒng)工作原理(1)利用usb接口將arduino duemilanove板和電腦連接,在電腦上利用arduino軟件將程序拷入arduino duemilanove板中,系統(tǒng)自動啟動,進(jìn)行檢查步進(jìn)電機是否正常轉(zhuǎn)動;(2) arduino擴(kuò)展板通過easydriver將信號傳輸?shù)讲竭M(jìn)電

37、機中;(3)通過arduino板中的程序控制步進(jìn)電機的轉(zhuǎn)速和正/反轉(zhuǎn)的圈數(shù),并將信號再次通過arduino擴(kuò)展板傳輸?shù)讲竭M(jìn)電機中。這時就可以看到步進(jìn)電機按照程序設(shè)定的結(jié)果正轉(zhuǎn)5圈,然后反轉(zhuǎn)5圈最后停止。3.5 步進(jìn)電機控制程序c語言參考程序:int dirpin = 6;int stepperpin = 5;int switch1 = 14;int switch2 = 15;int value;void setup() pinmode(dirpin, output); pinmode(stepperpin, output); pinmode(switch1, input); pinmode(s

38、witch2, input);void step(boolean dir,int steps) digitalwrite(dirpin,dir); for(int i=0; i steps; i +) digitalwrite(stepperpin, high); delaymicroseconds(500); digitalwrite(stepperpin, low); delaymicroseconds(500); / speed control delaymicroseconds(100); void loop() value = digitalread(switch1); if (hi

39、gh = value) step(true,1600 * 5); value = digitalread(switch2); if (high = value) step(false,1600 * 5); 按照連線,控制電機轉(zhuǎn)動的脈沖信號是通過arduino上的數(shù)字i/o引腳5來提供的,而電機轉(zhuǎn)動方向的控制則是通過數(shù)字i/o引腳6來實現(xiàn)的。兩個按鈕開關(guān)分別接在a0和a1號引腳上,對于數(shù)字i/o引腳14和15:int dirpin = 6;int stepperpin = 5;int switch1 = 14;int switch2 = 15;步進(jìn)電機的轉(zhuǎn)動主要是通過step()函數(shù)來實現(xiàn),該函

40、數(shù)有兩個參數(shù):第一個是轉(zhuǎn)動的方向,分別代表正轉(zhuǎn)和反轉(zhuǎn);第二個是步進(jìn)數(shù)目,即給的控制脈沖的數(shù)目。通過修改每個脈沖間隔之間的時間長度,可以非常容易地調(diào)整電機轉(zhuǎn)動的速度:/ speed controldelaymicroseconds(100);兩個對step()函數(shù)的調(diào)用,分別控制電機正轉(zhuǎn)/反轉(zhuǎn)相應(yīng)的圈數(shù),由于每種電機步進(jìn)的角度數(shù)不同,旋轉(zhuǎn)一圈所需要的脈沖數(shù)也是不一樣的,本設(shè)計中選用的是每圈200步的步進(jìn)電機,使用easydriver時每圈為1600步,要使步進(jìn)電機正轉(zhuǎn)5圈,然后反轉(zhuǎn)5圈,控制其這樣轉(zhuǎn)動的程序應(yīng)為:step(true,1600 * 5);step(false,1600 * 5);在

41、將代碼下載到arduino中并運行起來如圖 3.5 程序運行圖圖3.5 程序運行圖3.6 系統(tǒng)設(shè)計實體圖在畢業(yè)論文的編輯其間,完成了對于相關(guān)步進(jìn)電機的控制設(shè)計與實現(xiàn),其主要目的是通過對步進(jìn)數(shù)目的調(diào)節(jié)和函數(shù)調(diào)用,完成步進(jìn)電機轉(zhuǎn)速快慢、圈數(shù)和正/反轉(zhuǎn)的調(diào)節(jié),其具體連線方式如文中所示,其具體實體圖如下圖(3.6設(shè)計實體圖)所示圖3.6 設(shè)計實體圖3.7 實驗問題及解決1.線路連接問題,出現(xiàn)錯誤提示,如圖3.7.1 運行錯誤1圖3.7.1 運行錯誤1解決方法:重新連接線路后,設(shè)備正常。2.端口和板子沒選對,出現(xiàn)錯誤提示,如圖3.7.2 運行錯誤2圖3.7.2 運行錯誤2解決辦法:在設(shè)備管理器里面查看當(dāng)

42、前arduino使用端口號,確認(rèn)使用arduino板型號,在設(shè)置里面將端口號和板子型號更換正確。3.步進(jìn)電機不能正常轉(zhuǎn)動,而是在原地抖動。解決方法:經(jīng)研究步進(jìn)電機抖動而不能轉(zhuǎn)動是因為脈沖頻率過高,所以將原程序:digitalwrite(stepperpin, high);delaymicroseconds(50);digitalwrite(stepperpin, low);delaymicroseconds(50);改為:digitalwrite(stepperpin, high);delaymicroseconds(500);digitalwrite(stepperpin, low);del

43、aymicroseconds(500);從而增大每個脈沖間隔之間的時間長度,使步進(jìn)電機轉(zhuǎn)速降低,這樣步進(jìn)電機就能夠正常轉(zhuǎn)動了。第四章 總結(jié)與展望4.1 總結(jié)剛開始導(dǎo)師給我選定這個題目時,我根本就不知道arduino和步進(jìn)電機是什么東西,更別說步進(jìn)電機的工作原理了。我上網(wǎng)查閱了許多關(guān)于arduino和步進(jìn)電機的資料,以及查看導(dǎo)師幫我找的相關(guān)資料后,才知道arduino和步進(jìn)電機是什么以及步進(jìn)電機的工作原理。從而才寫出了這篇設(shè)計。 本設(shè)計采用的是目前比較先進(jìn)的技術(shù)arduino來控制步進(jìn)電機的轉(zhuǎn)動。簡易的過程描述:連接好線路后利用arduino軟件編譯器進(jìn)行程序編譯,把編譯好的程序燒入arduino duemilanove板中,arduino duemilanove微控制器通過控制easydriver驅(qū)動器來控制步進(jìn)電機的轉(zhuǎn)動。將設(shè)計程序燒入arduino duemilanove上調(diào)試運行后,最終結(jié)果與預(yù)期結(jié)果基本一致,即步進(jìn)電機實現(xiàn)正轉(zhuǎn)5圈,然后反轉(zhuǎn)5圈,最后停止。本次的畢業(yè)設(shè)計雖然系統(tǒng)相對比較簡單,但也比較實用。在此次的步進(jìn)電機控制設(shè)計過程中,更進(jìn)一步地熟悉有關(guān)步進(jìn)電機控制電路的知識和具體應(yīng)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論