版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、科技學院2011屆本科畢業(yè)論文基于arduino的步進電機的控制設計專 業(yè): 通 信 工 程 指導教師: 周 驊 學生姓名: 何 琛 學生學號: 082004110499 中國貴州貴陽2012年5月目錄摘要iiiabstractiv第一章 緒論11.1設計背景及意義11.2 現(xiàn)狀和發(fā)展趨勢21.3 設計內(nèi)容及目標2第二章 采用技術簡介32.1 arduino概述32.1.1 arduino的特色32.1.2 arduino語言基本結構42.1.3 開發(fā)一個項目的基本流程42.2 arduino duemilanove簡介52.3 easydriver簡介62.4 步進電機簡介72.5 步進電機
2、的工作原理82.5.1.電機固有步距角82.5.2步進電機的相數(shù)82.5.3 保持轉(zhuǎn)矩(holding torque)82.5.4 detent torque:9第三章 控制步進電機設計103.1 方案論證103.2 系統(tǒng)總體結構103.3 系統(tǒng)設計使用芯片123.4 系統(tǒng)工作原理133.5 步進電機控制程序133.6 系統(tǒng)設計實體圖163.7 實驗問題及解決16第四章 總結與展望184.1 總結184.2 展望18參考文獻19致謝20基于arduino的步進電機控制系統(tǒng)摘要近年來隨著科學技術的不斷提高,arduino的應用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月異更新。隨著國民經(jīng)濟的快
3、速發(fā)展,有很多平臺可以控制步進電機,目前的步進電機控系統(tǒng)大多采用plc控制器或8051單片機來控制。plc控制器是一款可編程邏輯控制器,它工作環(huán)境要求低,操作簡單,穩(wěn)定性也比較好,但是它的成本很高。而8051單片機雖然成本較低,靈活性很好,但是8051單片機的工作環(huán)境要求較高,操作起來也復雜得多。在本設計介紹了arduino控制步進電機的系統(tǒng)。在科技高速發(fā)展的今天,電動機一直在現(xiàn)代化的生產(chǎn)和生活中起著十分重要的作用。步進電機是機電控制中常用的一種執(zhí)行機構,其原理是通過對它的每相線圈中的電流和順序切換來使步進電機轉(zhuǎn)動。本系統(tǒng)的硬件組成主要有:arduino duemilanove微控制器板、ea
4、sydriver驅(qū)動、12v直流電源和電腦。本設計用easydriver驅(qū)動與arduino duemilanove微控制器板、12v直流外接電源連接,并用arduino duemilanove微控制器板與電腦連接,用程序控制步進電機實現(xiàn)轉(zhuǎn)向、轉(zhuǎn)速等控制。本設計具有結構簡單、可靠性強、操作簡單、程序設計簡便和實用性強等特點,具有較高的通用性和應用推廣價值。關鍵詞:arduino; easydriver;步進電機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設計背景及意義在科技飛速發(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ā)明的人構建的。arduino可以作為一塊atmegaxx8系列單片機開發(fā)板使用,可以連接多種電子元件外設,其中就有步進電機。步進電機是一種將電脈沖信
12、號轉(zhuǎn)換成相應的角位移或線位移的電磁機械裝置,是一種輸出與輸入數(shù)字脈沖對應的增量驅(qū)動元件,具有快速啟動和停止的能力。當負荷不超過步進電機所提供的動態(tài)轉(zhuǎn)矩值時,它就可能在一瞬間實現(xiàn)啟動和停止。它的步矩角和轉(zhuǎn)速不受電壓波動和負載變化的影響,也不受環(huán)境條件(如溫度、氣壓、沖擊和振動等)的影響,僅與脈沖頻率有關。它每轉(zhuǎn)1 周步數(shù)都事固定的,在不丟步的情況下運行,它的步距誤差不會長期積累。正是因為步進電機具備上述優(yōu)點,它已經(jīng)被廣泛地用于自動控制系統(tǒng)中作為執(zhí)行元件。隨著科學技術的不斷提高,有很多平臺可以控制步進電機,目前的步進電機控系統(tǒng)大多采用plc控制器或8051單片機來控制。plc控制器是一款可編程邏輯
13、控制器,它工作環(huán)境要求低,操作簡單,穩(wěn)定性也比較好,但是它的成本很高。而8051單片機雖然成本較低,靈活性很好,但是8051單片機的工作環(huán)境要求較高,操作起來也復雜得多。而arduino的開發(fā)板不僅成本較低,而且靈活性很好,同時它操作也很簡單,因為它有一個簡單的開發(fā)環(huán)境,底層的函數(shù)不用自己寫,已經(jīng)有集成的函數(shù)可以直接調(diào)用。因此開發(fā)和研制利用arduino的開發(fā)板來控制步進電機的控制系統(tǒng)是十分必要的。本文是以arduino作為主系統(tǒng)控制步進電機轉(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ā)明的人構建的。arduino可以作為一塊atmegaxx8系列單片機開發(fā)板使用,可以連接多種電子元件外設,其中就有步進電機。步進電機是一種將電脈沖信號轉(zhuǎn)換成相應的角位移或線位移的電磁機械裝置,是一種輸出與輸入數(shù)字脈沖對應的增
15、量驅(qū)動元件,具有快速啟動和停止的能力。當負荷不超過步進電機所提供的動態(tài)轉(zhuǎn)矩值時,它就可能在一瞬間實現(xiàn)啟動和停止。它的步矩角和轉(zhuǎn)速不受電壓波動和負載變化的影響,也不受環(huán)境條件(如溫度、氣壓、沖擊和振動等)的影響,僅與脈沖頻率有關。它每轉(zhuǎn)1 周步數(shù)都事固定的,在不丟步的情況下運行,它的步距誤差不會長期積累。正是因為步進電機具備上述優(yōu)點,它已經(jīng)被廣泛地用于自動控制系統(tǒng)中作為執(zhí)行元件。1.3 設計內(nèi)容及目標本設計是以arduino作為主系統(tǒng)控制步進電機轉(zhuǎn)的圈數(shù)以及控制電機的啟動和停止、正反轉(zhuǎn)。使得系統(tǒng)達到對步進電機的啟動、停止、正轉(zhuǎn)、反轉(zhuǎn)和運行距離的控制。隨著科學技術的不斷提高,目前有很多平臺可以作為
16、驅(qū)動控制步進電機,目前的步進電機控制系統(tǒng)大多采用plc控制器或8051單片機來控制。plc控制器是一款可編程邏輯控制器,它工作環(huán)境要求低,操作簡單,穩(wěn)定性也比較好,但是它的成本很高。而8051單片機雖然成本較低,靈活性很好,但是8051單片機的工作環(huán)境要求較高,操作起來也復雜得多。而arduino的開發(fā)板不僅成本較低,而且靈活性很好,同時它操作也很簡單,可以說它是集8051單片機和plc控制器的優(yōu)點于一身的開發(fā)平臺。它有一個簡單的開發(fā)環(huán)境,底層的函數(shù)不用自己寫,已經(jīng)有集成的函數(shù)可以直接調(diào)用。因此開發(fā)和研制利用arduino的開發(fā)板來控制步進電機的控制系統(tǒng)是十分必要的。第二章 采用技術簡介2.1
17、 arduino概述“arduino”源自11世紀北意大利國王的名字。這個開發(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 或其他控制器、步進電機、led、紅外傳感器或其他輸出裝置。不僅如此,ardu
18、ino還能夠獨立運作成為一個可以跟軟件溝通的平臺,例如說:flash、processing、max/msp、vvvv 或其他互動軟件arduino所有的軟件與硬件資源都可以在網(wǎng)絡上找到,而且它基于開放源碼的概念,讓我們可以以arduino為基礎,擴展各種硬件。arduino的結構如圖2.1所示。圖2.1 arduino結構圖2.1.1 arduino的特色1、開放源代碼的電路圖設計,程序開發(fā)接口和編程軟件免費下載,也可依照自己的需求進行修改。2、使用低價格的微處理控制器(atmega128或atmega8)。不需使用外接電源,可以直接采用usb接口供電。當然也可以使用外部9vdc輸入。3、ar
19、duino支持isp在線燒板,可以將新的“bootloader”燒入atmega8或atmega128芯片。有了bootloader之后,可以通過usb線更新固件。4、可依據(jù)官方網(wǎng)站提供的eagle格式pcb和sch電路圖,簡化arduino模組,完成獨立運作的微處理控制??珊唵蔚嘏c傳感器或各式各樣的電子元件連接(例如:紅外線、藍牙、超音波、光敏電阻、熱敏電阻、步進電機、伺服馬達等)。5、支持多種互動程序,如:flash、pd、max/msp、processing、vvvv、c/c+等。6、應用方面,利用arduino可以突破以往只能使用鍵盤、鼠標、ccd等輸入的裝置的互動內(nèi)容,能夠更簡單地達
20、成單人或多人游戲互動。2.1.2 arduino語言基本結構arduino語言是建立在c/c+基礎上的,其實也就是基礎的c語言,arduino語言只不過把avr單片機(微控制器)相關的一些寄存器參數(shù)設置等都函數(shù)化了,不用我們?nèi)チ私馑牡讓?,可以直接調(diào)用。 arduino中最基本的兩個結構: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ù)中的元素會被重復性的執(zhí)行,以實現(xiàn)程序的
21、狀態(tài)改變與回應,從而動態(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.準備 arduion 板和 usb 線2.下載軟件環(huán)境下載完畢后,解壓縮.3. usb 線將電腦和 arduino 板連接起來.可以發(fā)現(xiàn)綠燈閃爍4. 安裝驅(qū)動程序(1)進入新的硬件向?qū)В?2)選擇“是”,點擊下一步;(3)選擇“從列表或指定位置安裝”,點擊下一步;(4)選擇“在這些位置上搜索最佳驅(qū)動程序”“在搜索中包括這個位置”指定目錄:剛解壓縮軟件目錄下的driversftdi usb drivers(比如:d:arduinoarduino-0021 driversftdi usb drivers),點擊下一步;(5)點擊“完成”;5.直接雙擊編譯軟件arduino;6.選擇“f
23、ileexamples任意一個”7.選擇“toolsboard對應的arduino板”8.選擇“toolsserial port對應的端口”9.選擇“verify”,軟件自動查錯10.對程序中的錯誤進行修改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個復位按鈕。它包含支持微控制器運行所需的一切,只需要用usb線連接到電腦或電源a ac-dc適配器就可以使用了。它的工作電壓為5v,每個i/o引腳需要40ma的直流電流。圖2.2 arduino duemilanove微控制器2.3 easydriver簡介一個easydriver 能夠為兩級步進電機提供大約每相750ma的驅(qū)動。它被設置為固定的8步細分模式。即本設計中選用的是每圈200步的步進電機,使用easydriver時每圈為1600步。這是一種基于allegro a3967驅(qū)動芯片的細分斷路器。easydriv
25、er的最大電流從150ma到750ma,它可以采用最大驅(qū)動電壓大約為30v,其中包括板載5v的調(diào)壓器,所以只需要一個電源。easydriver的實物圖如圖2.3圖2.3 easydriver實物圖easydriver中主要的芯片是a3967slb。a3967slb是一個完整的微步內(nèi)置式電動機的驅(qū)動器。它的設計可操作雙極步進電機在全,半,季,和第八步模式下運行。它的輸出驅(qū)動電壓為30v,電流為750ma。a3967slb包括一個固定的監(jiān)控系統(tǒng),可以通過對電流脈沖間隔調(diào)節(jié)步進電機轉(zhuǎn)動速度的快慢。a3967slb具有電流衰減控制,電流衰減控制能減少發(fā)聲馬達噪音,增加步進電機的步進精度,并降低功耗。a
26、3967slb易于實現(xiàn)語言的轉(zhuǎn)換。在step輸入,只需輸入一個脈沖,電機走一步(全,半,季,或第八取決于兩個邏輯輸入)。它有沒有相位順序表、高頻率控制行或復雜的程序接口。a3967slb運用較簡單的芯片,是對初學者和不喜歡復雜編程的人們的理想選擇。a3967slb有24個銅制的引腳,不需要在固定溫度下運行,a3967slb的實物圖如圖2.3.1所示。圖2.3.1 a3967slb實物圖2.4 步進電機簡介步進電機步進電機也叫步進器,是一種將電脈沖信號轉(zhuǎn)換成相應的角位移或線位移的電磁機械裝置,是一種輸出與輸入數(shù)字脈沖對應的增量驅(qū)動元件,具有快速啟動和停止的能力。當負荷不超過步進電機所提供的動態(tài)轉(zhuǎn)
27、矩值時,它就可能在一瞬間實現(xiàn)啟動和停止。它的步矩角和轉(zhuǎn)速不受電壓波動和負載變化的影響,也不受環(huán)境條件(如溫度、氣壓、沖擊和振動等)的影響,僅與脈沖頻率有關。它每轉(zhuǎn)1 周步數(shù)都事固定的,在不丟步的情況下運行,它的步距誤差不會長期積累。正是因為步進電機具備上述優(yōu)點,它已經(jīng)被廣泛地用于自動控制系統(tǒng)中作為執(zhí)行元件。人們早在90年前就開始使用這種電機。隨著嵌入式系統(tǒng)(例如打印機、磁盤驅(qū)動器、玩具、雨刷、震動尋呼機和錄像機等)的日益流行,步進電機的使用也開始越來越頻繁的出現(xiàn)在我們的生活中。不論在工業(yè)、軍事、醫(yī)療、汽車還是娛樂業(yè)中,只要是需要把某件物體從一個位置移動到另一個位置的時候,步進電機就一定能派上用
28、場。步進電機有許多種形狀和尺寸,但不論形狀和尺寸如何,步進電機都可分為三類:永磁式(pm) ,反應式(vr)和混合式(hb):1. 永磁式步進電機一般為兩相步進電機,轉(zhuǎn)矩和體積都較小,步進角一般為7.5度或15度;2. 反應式步進電機一般為三相步進電機,可實現(xiàn)大轉(zhuǎn)矩輸出,步進角一般為1.5度。它的噪聲和振動都很大。它的轉(zhuǎn)子磁路由軟磁材料制成,定子上有多相勵磁繞組,利用磁導的變化產(chǎn)生轉(zhuǎn)矩。3. 混合式步進電動機綜合了反應式、永磁式步進電動機兩者的優(yōu)點,它的動態(tài)性能好、步距角小、出力大,是目前性能最高的步進電動機。它有時也稱作永磁感應子式步進電動機?;旌鲜讲竭M電機又分為兩相步進電機和五相步進電機:
29、混合式兩相步進電機的步進角一般為1.8度,而混合式五相步進電機的步進角一般為 0.72度。這種步進電機的應用最為廣泛。本設計中使用的是混合式步進電機。2.5 步進電機的工作原理工作原理是利用電子電路,將直流電變成分時供電的多相時序控制電流,用這種電流為步進電機供電,步進電機才能正常工作。驅(qū)動器就是為步進電機分時供電的多相時序控制器。2.5.1電機固有步距角當步進電機的驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進電機按設定的方向轉(zhuǎn)動一個固定的角度,稱為“步距角”,它的旋轉(zhuǎn)方式是以固定的角度一步一步運行的??梢酝ㄟ^控制脈沖的個數(shù)來控制角位移量,從而達到準確定位的目的;同時可以通過控制脈沖頻率(即每個脈沖
30、的間隔時間)來控制步進電機轉(zhuǎn)動的速度和加速度,從而達到調(diào)整步進電機轉(zhuǎn)動速度的目的。電機出廠時給出了一個步距角的值,如86byg250a型電機給出的值為0.9/1.8(表示半步工作時為0.9、整步工作時為1.8),這個步距角可以稱之為電機固有步距角,它不一定是電機實際工作時的真正步距角,真正的步距角和驅(qū)動器有關。通常步進電機步距角的一般計算按下式計算。=360/(zmk)式中 步進電機的步距角;z轉(zhuǎn)子齒數(shù);m步進電動機的相數(shù);k控制系數(shù),是拍數(shù)與相數(shù)的比例系數(shù)2.5.2步進電機的相數(shù)步進電機的相數(shù)是指電機內(nèi)部的線圈組數(shù),目前常見的有二相、三相、四相、五相步進電機。步進電機相數(shù)不同,其步距角也不同
31、,一般二相電機的步距角為0.9/1.8、三相的為0.75/1.5、五相的為0.36/0.72。在沒有細分驅(qū)動器時,用戶主要靠選擇不同相數(shù)的步進電機來滿足自己步距角的要求。如果使用細分驅(qū)動器,則相數(shù)將變得沒有意義,用戶只需在驅(qū)動器上改變細分數(shù),就可以改變步距角。2.5.3 保持轉(zhuǎn)矩(holding torque)保持轉(zhuǎn)矩(holding torque)是指步進電機通電但沒有轉(zhuǎn)動時,定子鎖住轉(zhuǎn)子的力矩。它是步進電機最重要的參數(shù)之一。步進電機在低速時的力矩接近保持轉(zhuǎn)矩。由于步進電機的輸出力矩隨速度的增大而不斷衰減,輸出功率也隨速度的增大而變化,所以保持轉(zhuǎn)矩就成為了衡量步進電機最重要的參數(shù)之一。比如,
32、當人們說2n.m的步進電機,在沒有特殊說明的情況下是指保持轉(zhuǎn)矩為2n.m的步進電機。2.5.4 detent torque:detent torque是指步進電機沒有通電的情況下,定子鎖住轉(zhuǎn)子的力矩。由于反應式步進電機的轉(zhuǎn)子不是永磁材料,所以它沒有detent torque。第三章 控制步進電機設計3.1 方案論證可控制步進電機的平臺有很多種,其中常見的有51單片機和plc。51單片機具有內(nèi)部結構簡單、體積小、成本低、擴展性強等優(yōu)點,但是它的穩(wěn)定性差,抗干擾能力也較差,需要自己設計電路圖和編程,而且電路圖和編程都相當?shù)膹碗s,比如:很多的八位單片機都不具備乘法功能,作乘法時還得編上一段子程序調(diào)用
33、,十分不便。而51單片機控制起來也相當?shù)牟环奖?,由于電路很復雜,往往給檢修也帶來很大的不便,所以51單片機一般運用在家用電器和商業(yè)上。plc是可編程邏輯控制器programmable logic controller的簡稱,它具有抗干擾能力強、可靠性強、編程簡單的優(yōu)點,但是它的價格昂貴,而擴展性差,結構相對復雜,比較不容易學習,所以plc往往只適用于大型工業(yè)設備。而arduino是一種目前比較先進的技術,它具有體積小、擴展性強、結構簡單、編程簡單、價格較低、可靠性高等優(yōu)勢,而且它不用自己設計電路圖,因此很容易學習。可以說arduino是集51單片機和plc的優(yōu)點與一身的平臺,因此在本設計中我選
34、用了arduino作為控制步進電機的平臺。在本設計中的控制器選擇了easydriver, 雖然l289n也可以實現(xiàn)步進電機的控制,但是l298n接線與編程都比easydriver復雜很多。所以本設計選用了接線和編程都較簡單的easydriver控制器。3.2 系統(tǒng)總體結構本設計對于步進電機控制系統(tǒng)硬件部分按功能大致可以分為以下幾個部分:arduino duemilanove模塊、easydriver控制器、步進電機和電源。首先將這幾樣器材通過焊接與導線連接起來,在將連接好的arduino duemilanove板通過usb數(shù)據(jù)線與電腦連接,在電腦上打開相對應的arduino軟件,在arduin
35、o軟件中打開相對應的c語音程序進行查錯和修改。完成程序修改后進行程序運行,并將c語音程序通過arduino軟件考入arduino duemilanove板中,這時可以看到步進電機按照程序命令轉(zhuǎn)動起來。根據(jù)步進電機的轉(zhuǎn)動快慢和正/反轉(zhuǎn)與圈數(shù)對程序進行反復修改和考入,最終得到滿意的轉(zhuǎn)動效果。硬件總體結構如圖3.2.1所示。結構框圖如圖3.2.2所示。圖3.2.1 硬件總體結構arduino程序arduino duemil-anoven模板easyd-river控制器12v直流電源步進電機圖3.2.2 結構框圖3.3 系統(tǒng)設計使用芯片在對于基于arduino系統(tǒng)設計實體中,使用的微控制器是ardui
36、no duemilanove,其arduino duemilanove微控制器實體圖如下圖3.3.1所示圖3.3.1 arduino duemilanove實物圖在本次設計中,使用的驅(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)自動啟動,進行檢查步進電機是否正常轉(zhuǎn)動;(2) arduino擴展板通過easydriver將信號傳輸?shù)讲竭M電
37、機中;(3)通過arduino板中的程序控制步進電機的轉(zhuǎn)速和正/反轉(zhuǎn)的圈數(shù),并將信號再次通過arduino擴展板傳輸?shù)讲竭M電機中。這時就可以看到步進電機按照程序設定的結果正轉(zhuǎn)5圈,然后反轉(zhuǎn)5圈最后停止。3.5 步進電機控制程序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)的。兩個按鈕開關分別接在a0和a1號引腳上,對于數(shù)字i/o引腳14和15:int dirpin = 6;int stepperpin = 5;int switch1 = 14;int switch2 = 15;步進電機的轉(zhuǎn)動主要是通過step()函數(shù)來實現(xiàn),該函
40、數(shù)有兩個參數(shù):第一個是轉(zhuǎn)動的方向,分別代表正轉(zhuǎn)和反轉(zhuǎn);第二個是步進數(shù)目,即給的控制脈沖的數(shù)目。通過修改每個脈沖間隔之間的時間長度,可以非常容易地調(diào)整電機轉(zhuǎn)動的速度:/ speed controldelaymicroseconds(100);兩個對step()函數(shù)的調(diào)用,分別控制電機正轉(zhuǎn)/反轉(zhuǎn)相應的圈數(shù),由于每種電機步進的角度數(shù)不同,旋轉(zhuǎn)一圈所需要的脈沖數(shù)也是不一樣的,本設計中選用的是每圈200步的步進電機,使用easydriver時每圈為1600步,要使步進電機正轉(zhuǎn)5圈,然后反轉(zhuǎn)5圈,控制其這樣轉(zhuǎn)動的程序應為:step(true,1600 * 5);step(false,1600 * 5);在
41、將代碼下載到arduino中并運行起來如圖 3.5 程序運行圖圖3.5 程序運行圖3.6 系統(tǒng)設計實體圖在畢業(yè)論文的編輯其間,完成了對于相關步進電機的控制設計與實現(xiàn),其主要目的是通過對步進數(shù)目的調(diào)節(jié)和函數(shù)調(diào)用,完成步進電機轉(zhuǎn)速快慢、圈數(shù)和正/反轉(zhuǎn)的調(diào)節(jié),其具體連線方式如文中所示,其具體實體圖如下圖(3.6設計實體圖)所示圖3.6 設計實體圖3.7 實驗問題及解決1.線路連接問題,出現(xiàn)錯誤提示,如圖3.7.1 運行錯誤1圖3.7.1 運行錯誤1解決方法:重新連接線路后,設備正常。2.端口和板子沒選對,出現(xiàn)錯誤提示,如圖3.7.2 運行錯誤2圖3.7.2 運行錯誤2解決辦法:在設備管理器里面查看當
42、前arduino使用端口號,確認使用arduino板型號,在設置里面將端口號和板子型號更換正確。3.步進電機不能正常轉(zhuǎn)動,而是在原地抖動。解決方法:經(jīng)研究步進電機抖動而不能轉(zhuǎn)動是因為脈沖頻率過高,所以將原程序:digitalwrite(stepperpin, high);delaymicroseconds(50);digitalwrite(stepperpin, low);delaymicroseconds(50);改為:digitalwrite(stepperpin, high);delaymicroseconds(500);digitalwrite(stepperpin, low);del
43、aymicroseconds(500);從而增大每個脈沖間隔之間的時間長度,使步進電機轉(zhuǎn)速降低,這樣步進電機就能夠正常轉(zhuǎn)動了。第四章 總結與展望4.1 總結剛開始導師給我選定這個題目時,我根本就不知道arduino和步進電機是什么東西,更別說步進電機的工作原理了。我上網(wǎng)查閱了許多關于arduino和步進電機的資料,以及查看導師幫我找的相關資料后,才知道arduino和步進電機是什么以及步進電機的工作原理。從而才寫出了這篇設計。 本設計采用的是目前比較先進的技術arduino來控制步進電機的轉(zhuǎn)動。簡易的過程描述:連接好線路后利用arduino軟件編譯器進行程序編譯,把編譯好的程序燒入arduino duemilanove板中,arduino duemilanove微控制器通過控制easydriver驅(qū)動器來控制步進電機的轉(zhuǎn)動。將設計程序燒入arduino duemilanove上調(diào)試運行后,最終結果與預期結果基本一致,即步進電機實現(xiàn)正轉(zhuǎn)5圈,然后反轉(zhuǎn)5圈,最后停止。本次的畢業(yè)設計雖然系統(tǒng)相對比較簡單,但也比較實用。在此次的步進電機控制設計過程中,更進一步地熟悉有關步進電機控制電路的知識和具體應
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版智能交通解決方案合同
- 2025年粗紡混紡紗行業(yè)深度研究分析報告
- 2024-2029年中國微電聲器件行業(yè)市場研究與投資預測分析報告
- 全電子時控開關鐘行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 2025年度個人教育培訓貸款延期合同4篇
- 2025年山西華新燃氣集團有限公司招聘筆試參考題庫含答案解析
- 2025年山東海洋冷鏈發(fā)展有限公司招聘筆試參考題庫含答案解析
- 二零二五版門衛(wèi)勞務與城市安全服務合同4篇
- 2025年江蘇海晟控股集團有限公司招聘筆試參考題庫含答案解析
- 2025年遼寧鞍山市臺安縣城建集團招聘筆試參考題庫含答案解析
- 冷庫存儲合同協(xié)議書范本
- AQ/T 4131-2023 煙花爆竹重大危險源辨識(正式版)
- 武術體育運動文案范文
- 設計服務合同范本百度網(wǎng)盤
- 2024年市級??谱o士理論考核試題及答案
- 肺炎臨床路徑
- 供應商供貨服務方案(2篇)
- JB∕T 3077-2019 汽輪機圖形符號
- 《藥物臨床試驗機構備案評估指南及檢查細則(試行)》
- 河北省2022年中考數(shù)學真題及答案
- 氨水安全技術說明書msds
評論
0/150
提交評論