基于a控制的交流伺服系統(tǒng)設計_第1頁
基于a控制的交流伺服系統(tǒng)設計_第2頁
基于a控制的交流伺服系統(tǒng)設計_第3頁
基于a控制的交流伺服系統(tǒng)設計_第4頁
基于a控制的交流伺服系統(tǒng)設計_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、課程設計報告(運動模塊)院:電氣工程與自動化學院學題目:基于 ARM的交流伺服系統(tǒng)設計專業(yè)班級:自動化 112 班學號:03學生姓名:指導:2014年 1 月14 日摘要運動技術能夠快速發(fā)展得益于計算機、高速數(shù)字處理器、自動、網(wǎng)絡技術的發(fā)展?;?ARM 的器逐步成為自動化領域的主導之一。高速、高精度以及具有良好可靠性始終是運動技術追求的目標。隨著自動化水平的不斷提高,越來越多的工業(yè)場合需要精確的位置。因此,如何更方便、更準確地實現(xiàn)位置是工業(yè)領域內的一個重要問題。伺服系統(tǒng)是以機械運動的驅動設備,伺服電為對象,以器為,以電力電子功率變換裝置為執(zhí)行機構,在自動理論的指導下組成的電氣傳動自動系統(tǒng),這

2、類系統(tǒng)電調轉速,將電能轉換為機械能,實現(xiàn)運械的運動要求。本文介紹了基于 ARM的交流伺服系統(tǒng)設計。該系統(tǒng)采用 STM32 芯伺服電機驅動器,從而對電機的轉速位移進行,經(jīng) keil 編程片作為智能化,精確化。:自動化;ARM;STM32;伺服電機;D/A;器AbstractThe rapid development of motion control technology can benefit the development of computer , high-speed digital processor , automatic control, network technology .A

3、RM-based controllers graduallye one of the leading automation and controlproducts . High-speed , high precision and reliability with good motion control technology is always the goal .With increasing levels of automation , more and more industrial control applications require precise position contro

4、l. So , how to be more convenient and more accurate position control achieved is an important issue in the field of industrial control . Servo system is mechanical movement drives, servo motors to control objects to the controller as the core to power electronic power conversion devices for the impl

5、ementing agencies , electrical transmission automatic control system under the guidance of the composition of the automatic control theory , such systems control the motor speed adjustment , convert electrical energy into mechanical energy , mechanical movement required to achieve movement .This art

6、icle describes the AC servo control system design based on ARM . The control system uses the STM32 chip as the control core , by keil programming control servo motor drives , and thus the speed of the displacement of the motor intelligent , precisecontrol.Keywords : automation ; ARM; STM32; servo mo

7、tor ; D / A data acquisition ;controller目 錄摘 要1Abstract2第 1 章緒論41.1 伺服電機技術現(xiàn)狀141.2 伺服調速技術發(fā)展趨勢151.3第 2 章2.12.2第 3 章課題主要研究內容5相關技術簡介7交流伺服電機的原理簡介237STM32 簡介9系統(tǒng)硬件設計103.1 總體設計103.2 硬件布局設計103.3 強電電路連線設計4113.4 ARM板電路圖11第 4 章系統(tǒng)軟件設計134.1 交流伺服系統(tǒng)程序框圖134.2 pwm 調速原理144.3 測速方式及原理5144.3.1 M 法數(shù)字測速144.3.2 T 法數(shù)字測速154.3

8、.3 M/T 法數(shù)字測速164.4 程序設計16第 5 章系統(tǒng)調試及注意事項175.1 系統(tǒng)的調試175.2 系統(tǒng)的注意事項17第六章 小結18致 謝19參考文獻20附錄 121附錄 2221.2.3.4.液晶屏顯示22PWM,中斷程序23編碼器程序29主程序30第 1 章緒論技術現(xiàn)狀11.1 伺服電機從 70 年代后期到 80 年代初期,隨著微處理器技術、大功率高性能半導體功率器件技術和電機永磁材料制造工藝的發(fā)展及其性能價格比的日益提高,交流伺服技術交流伺服電機和交流伺服系統(tǒng)逐漸成為主導。交流伺服驅動技術已經(jīng)成為工業(yè)領域實現(xiàn)自動化的基礎技術之一,并將逐漸取代直流伺服系統(tǒng)。交流伺服系統(tǒng)按其采用

9、的驅動電的類型來分,主要有兩大類:永磁同步(SM 型)電交流伺服系統(tǒng)和感應式異步(IM 型)電交流伺服系統(tǒng)。其中,永磁同步電交流伺服系統(tǒng)在技術上已趨于完全成熟,具備了十分優(yōu)良的低速性能,并可實現(xiàn)弱磁高速,拓寬了系統(tǒng)的調速范圍,適應了高性能伺服驅動的要求。并且隨著永磁材料性能的大幅度提高和價格的降低,其在工業(yè)生產(chǎn)自動化領域中的應用將越來越廣泛,目前已成為交流伺服系統(tǒng)的主流。感應式異步電交流伺服系統(tǒng)由于感應式異步電結構堅固,制造容易,價格低廉,因而具有很好的發(fā)展前景,代表了將來伺服技術的方向。但由于該系統(tǒng)采用矢量變換,相對永磁同步電伺服系統(tǒng)來說比較復雜,而且電機低速運行時還存在著效率低,發(fā)熱嚴重等

10、有待克服的技術問題,目前并未得到普遍應用。系統(tǒng)的執(zhí)行元件一般為普通三相鼠籠型異步電,功率變換器件通常采用智能功率模塊 IPM。為進一步提高系統(tǒng)的動態(tài)和靜態(tài)性能,可采用位置和速度閉環(huán)。三相交流電流的跟隨能有效地提高逆變器的電流響應速度,并且能限制暫態(tài)電流,從而有利于 IPM 的。速度環(huán)和位置環(huán)可使用單片機,以使策略獲得更高的性能。電流調節(jié)器若為比例形式,三個交流電流環(huán)都用足夠大的比例調節(jié)器進行,其比例系數(shù)應該在保證系統(tǒng)不產(chǎn)生振蕩的前提下盡量選大些,使被控異步電三相交流電流的幅值、相位和頻率緊隨給定值快速變化,從而實現(xiàn)電壓型逆變器的快速電流。電流用比例調節(jié),具有結構簡單、電流跟隨性能好以及限制電起

11、制動電流快速可靠等諸多優(yōu)點。技術發(fā)展趨勢11.2 伺服調速由于現(xiàn)代微電子技術的不斷進步以及電力電子電路良好的特性,使幾乎所有新的理論,方法都得以在交流調速裝置上應用和嘗試。現(xiàn)代理論不斷向交流調速領域滲透,特別是微型計算機及大規(guī)模集成電路的發(fā)展,使得交流電調速技術正向高頻化、數(shù)字化和智能化方向發(fā)展。近年來電力電子裝置的技術研究十分活躍,各種現(xiàn)代理論,如自適應和滑模變結構,以及智能和高動態(tài)性能都是研究的熱點。這些研究必將把交流調速技術發(fā)展到一個新的水平系統(tǒng)的軟化對 CPU提出了更高的要求,為了實現(xiàn)高性能的交流調速,要進行矢量的坐標變換,磁通矢量的計算和適應參數(shù)變化而修正磁通模型,以及內部的度、速度

12、、位置的重疊外環(huán)的實時,都需要多種數(shù)據(jù)和快速實時處理大量信息。可以預見,隨著計算機容量的增加和運算速度的加快,交流調速系統(tǒng)的性能將得到很大的提高??茖W的快速發(fā)展使得各學科之間已沒有嚴格的界線,它們相互影響,相互滲透,從發(fā)展的角度來看,把神經(jīng)網(wǎng)絡、模糊、滑模變結構等現(xiàn)代控制理論用于伺服電機調速技術有著極其重要的意義和廣闊的前景,可以認為這將是伺服電機調速技術的發(fā)展方向之一。此外領域的其他新技術如現(xiàn)場總線、自適應、遺傳算法等,也將引入到交流傳動領域,給伺服電機調速的技術帶來的影響。1.3 課題主要研究內容本文以高性能的STM32 為,輔以鍵盤、顯示、測速電路,設計基于 ARM的交流伺服電數(shù)字化系統(tǒng)

13、。系統(tǒng)目標為:1. 實現(xiàn)電機的轉速輸入與轉速顯示,實現(xiàn)電機轉速的2. 實現(xiàn)電機的正反轉;3電機定點停止;4設置合理的電路保護根據(jù)系統(tǒng)要求,本人分以下幾個步驟進行了設計:1總體模塊的布局,設計以及安裝;2. 弱電3. Keil 編程對板的設計與焊接;板進行調試;4對系統(tǒng)整體進行了分析,總結。第 2 章相關技術簡介原理簡介232.1 交流伺服電機的交流伺服電相似.其定子的構造基本上與電容分相式單相異步電定子上裝有兩個位置互差 90的繞組,一個是勵磁繞組 Rf,它始終接在交流電壓Uf 上;另一個是繞組 L,聯(lián)接信號電壓 Uc。所以交流伺服電又稱兩個伺服電。交流伺服電的轉子通常做成鼠籠式,但為了使伺服

14、電具有較寬的調速范圍、線性的機械特性,無“自轉”現(xiàn)象和快速響應的性能,它與普通電比,應具有轉子電阻大和轉動慣量小這兩個特點。相交流伺服電在沒有電壓時,定子內只有勵磁繞組產(chǎn)生的脈動磁場,轉子靜止不動。當有電壓時,定子內便產(chǎn)生一個旋轉磁場,轉子沿旋轉磁場的方向旋轉,在負載恒定的情況下,電的轉速隨電壓的大小而變化,當電壓的相位相反時,伺服電將反轉。交流伺服電的工作原理與分相式單相異步電雖然相似,但前者的轉子電阻比后者大得多,所以伺服電與單機異步電相比,有三個顯著特點:1、起動轉矩大;2、運行范圍較廣;3、無自轉現(xiàn)象。交流伺服電運行平穩(wěn)、噪音小。但特性是非線性,并且由于轉子電阻大,損耗大,效率低,因此

15、與同容量直流伺服電相比,體積大、重量重,所以只適用于 0.5-100W 的小功率系統(tǒng)。與普通電機一樣,交流伺服電機也由定子和轉子。定子上有兩個繞組,即勵磁繞組和繞組,兩個繞組在空間相差 90電角度。伺服電機內部的轉子是永磁鐵,驅動 gS的 UVW 三形成電磁場 轉子在此磁場的作用下轉動,同時電機自帶的編碼器反饋信號給驅動器,驅動器根據(jù)反饋值與目標值進行比較 調整轉子轉動的角度。伺服電機的精度決定于編碼器的精度。交流伺服電機的工作原理和單相感應電無本質上的差異。但是,交流伺服電機必須具備一個性能,就是能克服交流伺服電機的所謂“自轉”現(xiàn)象,即無信號時,它不應轉動,特別是當它已在轉動時,如果信號消失

16、,它應能立即停止轉動。而普通的感應電轉動起來以后,如信號消失,往往仍在繼續(xù)轉動。當電機原來處于靜止狀態(tài)時,如繞組不加電壓,此時只有勵磁繞組通電產(chǎn)生脈動磁場??梢詣哟艌隹闯蓛蓚€圓形旋轉磁場。這兩個圓形旋轉磁場以同樣的大小和轉速,向相反方向旋轉,所建立的正、反轉旋轉磁場分別切割籠型繞組(或杯形壁)并感應出大小相同,相位相反的電動勢和電流(或渦流),這些電流分別與各自的磁場作用產(chǎn)生的力矩也大小相等、方向相反,力矩為零,伺服電機轉子轉不起來。一旦系統(tǒng)有偏差信號,繞組就要接受與之相對應的電壓。在一般情況下,電機內部產(chǎn)生的磁場是橢圓形旋轉磁場。一個橢圓形旋轉磁場可以看兩個圓形旋轉磁場起來的。這兩個圓形旋轉

17、磁場幅值不等(與原橢圓旋轉磁場轉向相同的正轉磁場大,與原轉向相反的反轉磁場?。?,但以相同的速度,向相反的方向旋轉。它們切割轉子繞組感應的電勢和電流以及產(chǎn)生的電磁力矩也方向相反、大小不等(正轉者大,反轉者小)力矩不為零,所以伺服電機就朝著正轉磁場的方向轉動起來。為使交流伺服電機具有信號消失,立即停止轉動的功能,把它的轉子電阻做得特別大,使它的臨界轉差率 Sk 大于 1。普通的兩相和三相異步電正常情況下都是在對稱狀態(tài)下工作,不對稱運行屬于故障狀態(tài)。而交流伺服電機則可以靠不同程度的不對稱運行來達到目的。這是交流伺服電機在運行上與普通異步電的根本區(qū)別。就伺服驅動器的響應速度來看,轉矩模式運算量最小,驅

18、動器對信號的響應最快;位置模式運算量最大,驅動器對信號的響應最慢。伺服電機的方式下面三類:1.轉矩:轉矩方式是通過外部模擬量的輸入或直接的地址的賦值來設定電機軸對外的輸出轉矩的大小。2.位置:位置模式一般是通過外部輸入的脈沖的頻率來確定轉動速度的大小,通過脈沖的個數(shù)來確定轉動的角度,也有些伺服可以通過通訊接對速度和位移進行賦值。由于位置模式可以對速度和位置都有很嚴格的,所以一般應用于裝置。應用領域如數(shù)控機床、印刷機械等等。3.速度模式:通過模擬量的輸入或脈沖的頻率都可以進行轉動速度的,在有上位裝置的外環(huán) PID時速度模式也可以進行,但必須把電機的位置信號或直接負載的位置信號給上位反饋以做運算用

19、。位置模式也支持直接負載外環(huán)檢測位置信號,此時的電機軸端的編碼器只檢測電機轉速,位置信號就由直接的最終負載端的檢測裝置來提供了,這樣的優(yōu)點在于可以減少中間傳動過程中的誤差,增加了整個系統(tǒng)的精度。2.2 STM32 簡介STM32 系列基于專為要求高性能、低成本、低功耗的應用專門設計的 ARM Cortex-M3 內核。按性能分成兩個不同的系列:STM32F103“增強型”系列和 STM32F101“基本型”系列。增強型系列時鐘頻率達到 72MHz,是同類中性能最高的;基本型時鐘頻率為 36MHz,以 16 位的價格得到比16 位 大幅提升的性能,是 16 位 用戶的最佳選擇。兩個系列都內置 3

20、2K 到 128K 的閃存,不同的是 SRAM 的最大容量和外設接口的組合。時鐘頻率72MHz 時,從閃存執(zhí)行代碼,STM32 功耗 36mA,是 32 位市場上功耗最低的產(chǎn)品,相當于 0.5mA/MHz。STM32 處理器功能更強,數(shù)據(jù)處理能力,能力都比較強。而且其使用方便,對于高精度的伺服電機更好。第 3 章系統(tǒng)硬件設計3.1 總體設計本文介紹了基于 ARM系統(tǒng)采用 STM32 芯的交流伺服系統(tǒng)設計。該,經(jīng) keil 編程伺服電機驅動器,從而對電機的轉速位移進行片作為智能化,精確化。以分為弱電電路,強電電路兩大部分,弱電電路指 ARM部分,強電模塊主要是伺服器通電部分。弱電/強電顯示STM

21、32伺服電機伺服器鍵盤3.2 硬件布局設計由于交流伺服系統(tǒng)中的模塊較多,為了更好的調試,我們按如下布局進行排布。行行程程啟動按鈕 (綠)停止按鈕 (紅)STM32 及顯示運行燈(綠)電源燈(紅)伺服電機ARM板直流繼電器交流接觸器空開正反轉開關伺服控制器接交流電3.3 強電電路連線設計4強電部分的連線ON紅交 流空開A1綠接 觸綠紅器A23.4 ARM板電路圖A5 伺服電機的電源是 220V 交流點,而 ARM板的供電電源是 12V,為了防止 A5 伺服電機 220V 燒毀 ARM板,我們采用光電,我們用 PC817 光耦來實現(xiàn)強電與弱電的。測速模塊,我們采用 LM324,利用伺服器X4 口的

22、 OA+,OA-,OB+,OB-,OZ+,OZ-來檢測 A,B,Z 脈沖。原理圖如下:PCB 如圖:第 4 章系統(tǒng)軟件設計4.1 交流伺服系統(tǒng)程序框圖系統(tǒng)運行時,我們首先要進行伺服準備,這樣,我們發(fā)脈沖,電機才會有反應。測速,我們直接接收伺服電機的編碼器上的 ABZ 的脈沖。以下是程序流程圖。開始伺服準備發(fā)脈沖接收編碼盤脈沖并顯示N是否Y設置點啟動返回結束。設置速度并啟動4.2 pwm 調速原理這里指利用單片機部分 I/O 口具有輸出 pwm 信號的功能,在不改變pwm 方波周期的前提下,通過軟件的方法調整單片機的 pwm寄存器來調整 pwm 占空比,從而發(fā)出相應頻率的脈沖,從而電機轉速,詳細

23、程序實現(xiàn)見附錄。4.3 測速方式及原理5光電編碼器的輸出脈沖信號有三種測速方法。法是在固定的時間間隔內對脈沖進行計數(shù),實際上測量的是脈沖的頻率,這種方法稱為 M 法;另法是計算兩個脈沖之間的時間間隔,亦即脈沖信號的周期,這種方法稱為 T 法;綜合以上兩種方法則產(chǎn)生第三種方法 M/T 法。4.3.1 M 法數(shù)字測速M 法測速的原理如圖 12.22 所示,因為只有取邊沿信號才能保證測量時間的準確性,圖中的脈沖信號是傳感器輸出信號經(jīng)處理后得到的邊沿信號。若傳感器與某轉軸連接且每轉產(chǎn)生 N 個脈沖,在時間間隔 Ti 內對傳感器輸出的脈沖進行計數(shù)并得到計數(shù)值 m1,那么則可推算出轉速為 n=60m1/N

24、T1(rpm)M 法測速的分辨率為可測得的轉速最小間隔,顯然這個指標等于一個脈沖計數(shù)所導致的轉速差/由上式可知,在傳感器每轉脈沖數(shù) N 和時間間隔 T1 保持不變的前提下,M法數(shù)字測速的分辨率與轉速無關。顯然,在速度變化的測速過程中需要保持時間間隔 Ti 的準確性和穩(wěn)定性。M法測速在高速下可得到大的 mi 而導致小的相對誤差。而在低速下由于計數(shù)少而產(chǎn)生大的相對誤差。由此可見 M 法上適合于高速的測量而不適合低速的測量。采用 M 法所得到的速度實際上并不是檢測時間到達時的瞬時速度,而是過去T1 時間內瞬時速度的平均值。因此作為閉環(huán)速度中的反饋環(huán)節(jié),M 法測速具有滯后特性并有可能影響系統(tǒng)的性能。在

25、每轉脈沖數(shù) N 不變的情況下,如果想要提高轉速的分辨率和降低相對誤差就要增加檢測時間 T1。但是統(tǒng)的性能又需要減少檢測時間以提高反饋環(huán)節(jié)的實時性,這兩方面的要求是互相的,解決這個的出路是采用每轉脈沖數(shù) N 較大的傳感器:4.3.2T 法數(shù)字測速T 法使用傳感器輸出脈沖的沿來啟動和結束計數(shù)器對一個基準時鐘的計數(shù),然后利用這個計數(shù)值來推算轉速。如圖 12. 23 所示,基準時鐘發(fā)出計數(shù)脈沖,傳感器輸出脈沖的前沿的作用是結束一個計數(shù)器的本次計數(shù)并啟動下次計數(shù)。設本次計數(shù)值為 m2。在基準時鐘的頻率 fc 準確穩(wěn)定的前提下,m2 實際上是傳感器輸出脈沖周期 T2 的度量,那可以用下式來計算轉速 n=6

26、0fc/Nm2(rpm)T 法的分辨率等于一個基準時鐘所導致的轉速差由上式可知,T 法測速在低速時的分辨率優(yōu)于高速時。T 法的相對誤差同樣取決于一個計數(shù)脈沖,應該是 l/m2。顯然轉速低時 m:較大,導致相對誤差較小,也說明了 T 法適用于低速的測量。4.3.3 M/T 法數(shù)字測速從原理上 M 法和 T 法都可以折算出轉速,但是從轉速測量的精度、分辨率和實時性考慮,前者適用高速下的轉速測量,而后者則適合低速下的轉速測量,而綜合了兩者特點的則是 M/T 法。設置兩個計數(shù)器分別對傳感器輸出和基準時鐘計數(shù),得到計數(shù) mi 和 m2。若被測軸在 T 時間內轉過角度 X,則有 X=2m1/N(rad)而

27、經(jīng)基準時鐘計數(shù)得到的時間 T 為 T=m2/fc則可得到轉速為 n=60X/2T=60m1/NT=60fcm1/Nm2=Km1/m2K=60fc/N一般設計時鐘頻率遠遠高于傳感器輸出頻率,因此 M/T 法的分辨率主要取決于 fe,應為 R=Km1/m2(m2-1)從 M/T 法的原理可知,在最低的轉速下這種方法也可以保證檢測傳感器輸出脈沖的一個完整周期。如果在低速下 T1 小于傳感器的脈沖周期,那么檢測時間丁就等于傳感器輸出脈沖的周期。如果 T1 大于傳感器的脈沖周期,那么檢測時間丁小于 2T1。這種方法在高速和低速下都可以進行較為準確的速度檢測。4.4程序設計顯示,按鍵,我們使用帶觸摸的液晶

28、顯示器。程序見附錄。第 5 章系統(tǒng)調試及注意事項5.1 系統(tǒng)的調試系統(tǒng)上電后,開啟啟動按鈕,對伺服電機供電,按下液晶屏啟動鍵,電機轉動;按下正反轉,可以實現(xiàn)正反轉;按下加,可以實現(xiàn)加;同時,可以測速,進一步,可以啟停。5.2 系統(tǒng)的注意事項1.對于伺服器,應該先對 L1C,L2C 通電,即將之連接到空氣開關;然后再對 L1,L2 通電,即將之連接到交流接觸器輸出端。2.X4 接口焊接時,要用熱塑套,防止啟動后銅線相互接觸,燒毀伺服器。3.若 X4 接口安常規(guī)方法不能驅動電機,我們可以反過來嘗試一下。即“高”接“0”,“0”接“負”。4.對于伺服器,在 打開空開開關后,應立即按下啟動按鈕,防止出

29、現(xiàn)上電錯誤。器第六章小結經(jīng)歷了整整 3 周的時間,我們從剛開始課程設計的茫然,到后來一步步完成各個部分,各個模塊的設計,安裝,讓我們真正意義上進行了一次從硬件到軟件, 從強電到弱電的綜合設計。讓我們從心底感到自豪。特別是當電機轉動,可以實現(xiàn)相關功能時,作為設計者的我們,心中陣陣悸動。這 3的。充實的,也是忙碌3 周的時間,我們對于運動系統(tǒng)有了一個全新的認識。同時加強了電拖,電力電子,運動3 門課程的理解,認識。強化了對于 ARM,對于 STM32 的應用。完成了這次的課程設計,也是對我大三上學期的一個檢驗。下學期,我將更加努力,執(zhí)著著,努力著。必將或有收獲。致,謝首先我在這里要感謝,是他們在我

30、們課程設計過程中,時時刻刻給予我們幫助。忙前忙后,對于每個細節(jié)都要求很嚴。其次我要感謝 3+1 班這個集體,沒有這么一個集體的氛圍,我無法在這個時候靜下心來搞這些東西。最后我要感謝這期間,給予我?guī)椭乃腥?。一路來的幫助,鼓勵和支持,讓我堅持了下來,收獲了接下來,我將繼續(xù)努力。參考文獻1 基于 S7-200 伺服電機系統(tǒng)設計.西安郵電大學畢業(yè)設計,20122文,200934.基于 ARM 的伺服電機器設計.河北工業(yè)大學畢業(yè)生畢業(yè)論.電機與拖動基礎.浙江大學,2010.電力電子技術.,2009,2008,2009,機械工業(yè)56陳電力拖動自動系統(tǒng)機械工業(yè).ARM接術M.北京:7.ARM系統(tǒng)M.廣州

31、:北京航空航天大學,2008附錄 1附錄 21.液晶屏顯示/*stm32_ili9320_show.c*/ voidLCD_show(void)ili9320_Clear(Cyan); GUI_Rectangle(0,0,160,240,Magenta,Blue);GUI_Text(40,0,自動化,6,White,Red);GUI_Text(90,0,112,White,Red);GUI_ GUI_Text(115,0,班,2,White,Red);_Text(60,30,第一組,6,White,Red);GUI_ GUI_ GUI_Text(10,80,_Text(70,80,_Text(

32、115,80,6,DGREEN,WHITE);,4,DGREEN,WHITE);,4,DGREEN,WHITE);GUI_Text(45,130,基于,4,LGRAY,DGRAY);GUI_Text(85,130,ARM,LGRAY,DGRAY);GUI_ GUI_Text(50,160,的,6,LGRAY,DGRAY);_Text(30,190,交流伺服系統(tǒng),12,LGRAY,DGRAY);GUI_Text(20,220,指導,8,White,Red);GUI_Text(85,220,:,White,Red);GUI_Text(90,220,6,White,Red);GUI_/* ,12,Y

33、ELLOW 110,130,GUI_ ,12,YELLOW 110,150,GUI_ ,12,YELLOW 110,170,GUI_ ,12,YELLOW 110,190,GUI_ ,12,YELLOW 110,210,_Text(160,0,初始參數(shù)設置,12,YELLOW ,RED);GUI_Text(0,130,指令脈沖輸入,RED);GUI_Text(100,130,:,YELLOW ,4,MAGENTA ,BLACK);,RED);GUI_Text(_Text(0,150,伺服輸入_Text(,RED);GUI_Text(100,150,:,YELLOW ,4,MAGENTA ,BL

34、ACK);_Text(0,170,RED);GUI_Text(100,170,:,YELLOW ,4,MAGENTA ,BLACK);,RED);GUI_清除輸入_Text(,RED);GUI_Text(0,190,正向驅動輸入_Text(,RED);GUI_Text(100,190,:,YELLOW ,4,MAGENTA ,BLACK);,RED);GUI_Text(0,210,反向驅動輸入_Text(,RED);GUI_Text(100,210,:,YELLOW ,4,MAGENTA ,BLACK);,RED);GUI_GUI_ ,12,YELLOW 270,130,*/GUI_ ,12,

35、YELLOW_Text(160,130,伺服準備輸出_Text(,RED);GUI_Text(260,130,:,YELLOW ,4,MAGENTA ,BLACK);,RED);GUI_Text(160,70,初始速度輸入,RED);GUI_Text(260,70,:,YELLOW,RED);GUI_Text(270,70,00000,MAGENTA ,BLACK);GUI_Text(160,110,實際速度檢測,12,YELLOW ,RED);GUI_Text(260,110,:,YELLOW ,RED);GUI_Text(270,110, 00000,MAGENTA ,BLACK);GUI

36、_Rectangle(160,170,210,200,BLUE,1); GUI_Rectangle(270,170,320,200,BLUE,1);GUI_Rectangle(212,170,240,200,BLUE,1); GUI_Rectangle(242,170,268,200,BLUE,1);GUI_Rectangle(160,210,240,240,GREEN,1);GUI_Rectangle(242,210,320,240, RED ,1);GUI_ GUI_GUI_ GUI_GUI_ GUI_Text(215,175,正,2,YELLOW,BLUE);_Text(245,175,

37、反,2,YELLOW ,BLUE);_Text(161,175,速度加,6,YELLOW,BLUE);_Text(271,175,速度減,6,YELLOW ,BLUE);_Text(180,220,啟動,4,YELLOW ,GREEN);_Text(262,220,停止,4,YELLOW ,RED);GUI_Rectangle(160,130,320,150,BLACK,1);GUI_Text(180,135,設置,8,White ,BLACK);void Piture_Show(void)ili9320_Clear(Cyan);GUI_Text(60,60,設置圈數(shù),8,YELLOW ,GR

38、EEN);GUI_Text(130,60,:,YELLOW ,GREEN); GUI_Rectangle(242,210,320,240, RED ,1);GUI_Text(262,220,返回,4,YELLOW ,RED);GUI_Rectangle(160,170,210,200,BLUE,1); GUI_Rectangle(270,170,320,200,BLUE,1);GUI_ GUI_Text(181,175,加,6,YELLOW,BLUE);_Text(291,175,減,6,YELLOW ,BLUE);2.PWM,中斷程序/*TIM.C*/ #include stm32f10x.

39、h#include TIM.hstatic void NVIC_Configuration(uint8_t NVIC_PreemptionPriority,uint8_tNVIC_SubPriority,uint8_tNVIC_Channel,uint32_tNVIC_Group)NVIC_InitTypeDef NVIC_InitStructure;NVIC_PriorityGroupConfig(NVIC_Group);NVIC_InitStructure.NVIC_IRQChannel = NVIC_Channel; NVIC_InitStructure.NVIC_IRQChannelP

40、reemptionPriorityNVIC_PreemptionPriority; NVIC_InitStructure.NVIC_IRQChannelSubPriority = NVIC_SubPriority; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure);=/*定時器 3*/PWM 初始化void TIM3_PWM_init_us( uint16_t PWM)TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure; TIM_OCInitType

41、Def TIM_OCInitStructure;/* TIM3 clock enable */PCLK1 經(jīng)過 2 倍頻后作為 TIM3 的時鐘源等于 72MHzRCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);/* Time base configuration */ TIM_TimeBaseStructure.TIM_Period =144 ;1000 次,為一個定時周期TIM_TimeBaseStructure.TIM_Prescaler =PWM ; 1MHz/當定時器從 0 計數(shù)到 999,即為/設置預分頻:72 分頻,即為TIM_

42、TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1 ;系數(shù):不分頻/ 設置時鐘分頻TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;/向上計數(shù)模式TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);/* PWM1 Mode configuration: Channel1 */TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;/配置為 PWM 模式 1TIM_OCInitStructure.

43、TIM_OutputState = TIM_OutputState_Enable;TIM_OCInitStructure.TIM_Pulse = 72;/設置跳變值,當計數(shù)器計數(shù)到這個值時, 電平發(fā)生跳變TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;小于 CCR1_Val 時為高電平/當定時器計數(shù)值TIM_OC1Init(TIM3, &TIM_OCInitStructure);/使能通道 1TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);/* TIM3 enable count

44、er */TIM_Cmd(TIM3, ENABLE);/使能定時器 3/*定時器 2to4 初始化*/*TIM_Period-1000TIM_Prescaler-71 -中斷周期為 1ms*/void TIM2to4_init_us(TIM_TypeDef* TIMx, uint16_t reload_time)TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;switch(uint32_t)TIMx) case (uint32_t)TIM2:ENABLE); /* 使能定時器時鐘*/RCC_APB1PeriphClockCmd(RCC_APB1Peri

45、ph_TIM2, NVIC_Configuration(2,2,TIM2_IRQn,NVIC_PriorityGroup_2); break;/搶占 1,子優(yōu)先級 3,組 2case (uint32_t)TIM3:ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3 , NVIC_Configuration(2,2,TIM3_IRQn,NVIC_PriorityGroup_2); break;case (uint32_t)TIM4:ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4 , NVIC_

46、Configuration(2,2,TIM4_IRQn,NVIC_PriorityGroup_2); break; default:break;TIM_DeInit(TIMx);TIM_TimeBaseStructure.TIM_Period=reload_time; /* 自動重裝載寄存器周期的值(計數(shù)值) */TIM_TimeBaseStructure.TIM_Prescaler= (72 - 1); 72M/72 */TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_Counte

47、rMode=TIM_CounterMode_Up;*/TIM_TimeBaseInit(TIMx, &TIM_TimeBaseStructure);/* 時鐘預分頻數(shù)/* 采樣分頻 */* 向上計數(shù)模式TIM_ClearFlag(TIMx, TIM_FLAG_Update);/* 清除溢出中斷標志*/TIM_ITConfig(TIMx,TIM_IT_Update,ENABLE); TIM_SetCounter(TIMx,/* 清除計數(shù)器*/ TIM_Cmd(TIMx, ENABLE);0);/* 開啟時鐘 */* 外部中斷初始化*/voidEXTIx_init(uint8_tGPIO_Port

48、SourceGPIOx,uint8_tGPIO_PinSourcex,EXTITrigger_TypeDef EXTI_Trigger)EXTI_InitTypeDef EXTI_InitStructure;/* config the extiline clock and AFIO clock */RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);/* config the NVIC */ if(GPIO_PinSourcex 5) NVIC_Configuration(2, NVIC_PriorityGroup_2); else if(GP

49、IO_PinSourcex NVIC_Configuration(2, else NVIC_Configuration(2,/*配置 0-4 外部中斷*/2,EXTI0_IRQn+GPIO_PinSourcex,10) /* 配置 5-9 外部中斷*/2, EXTI9_5_IRQn, NVIC_PriorityGroup_2);/* 配置 10-15 外部中斷*/ 2,EXTI15_10_IRQn,NVIC_PriorityGroup_2);/* EXTImode config */ GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSourc

50、e13); EXTI_InitStructure.EXTI_Line = (1GPIO_PinSourcex); EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger; /上升下降降沿中斷EXTI_InitStructure.EXTI_LineCmd = ENABLE;EXTI_Init(&EXTI_InitStructure);/*EXTI_PA0.c*/#include EXTI_PA0.hEXTI_InitTypeDef GPIO_InitTyp

51、eDefNVIC_InitTypeDefEXTI_InitStructure; GPIO_InitStructure;NVIC_InitStructure;void EXTI_Config(void)/* Enable GPIOA clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);/* Configure PA.00 pin as input floating */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3; GPIO

52、_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA, &GPIO_InitStructure);/* Enable AFIO clock */RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);/* Connect EXTI0 Line to PA.00 pin */GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);/* Configure EXTI0 line */ EXTI_InitStructure.EXTI_Line = EXTI_Line0;EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Inter

溫馨提示

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

評論

0/150

提交評論