Ⅰ 用單片機對步進電機進行控制
呵呵 兄弟可以參考某些部分 呵呵
自己做的課程設計 還沒有做完 完了發給你參考參考
題 目:單片機控制步進電機系統
摘 要
很多工業控制設備對位移和角度的控制精度要求較高, 一般電機很難實現, 而步進電機可精確實現所設定的角度和轉數。本設計主要是運用51 單片機控制六線4 相步進電機系統, 由單片機產生驅動脈沖信號, 控制步進電機以一定的轉速向某一方向產生一定的轉動角度。同時能夠利用單片機實現電機的正、反轉及速度控制,並能在數碼管上顯示出相應的速度。
本文中給出了該系統設計的硬體電路,軟體設計,人機交互等。並對各個功能模塊進行了詳細的說明。主要內容包括以下幾個方面:
單片機控制步進電機的一般原理。
電機驅動及控制的實現。
控制系統整體設計以及模塊劃分說明。
原理圖。
代碼。
關鍵詞:單片機;步進電機;系統;驅動
Abstract
Many Instrial control equipment have a highly requirement in displacement and angle with control accuracy, the most motor can't carry out .but the step motor can carry out the displacement and angle that you enactmented in accuracy. This design mainly used SCM to control step motor system.The step motor is formed six lines and four phasic.Through SCM generate the drive pulse signal.Control stepper motor through a certain speed in a direction to get a certain degree of rotation angle.
At the same time, It can use SCM to realization of the motor is , reverse and speed control. and showed the speed in the digital tube.
In this paper, given the design of the system hardware circuit,software design, human-computer interaction and so on.and it given the details description of each functional mole.the main contents include the following:
(1) The general principles of signal_chip controlling step motor.
(2) The realization of motor driving and controlling
(3) Control system overall design and description mole division
(4) Schematic Diagram
(5) Code
Key Words:SCM; stepper motor; system; drive
目錄
引言 4
1 單片機控制步進電機的一般原理 4
1.1 步進電機 4
1.1.1 步進電機介紹 4
1.1.2 步進電機分類 5
1.1.3 技術指標 5
1.1.4 步進電機工作原理 5
1.2 單片機 7
2 步進電機驅動實現 8
2.1簡介 8
2.2驅動選擇 8
3 系統硬體設計 9
3. 1 單片機控制電機 9
3.2 鍵盤 9
3.3 顯示部分 10
程序流程圖 11
總結 12
致 謝 13
參考文獻 13
附錄 13
C代碼 13
引言
目前,在工業控制生產以及儀器上應用十分廣泛。通常都要對一些機械部件平移和轉動,對移動的位移和角度控制要求較高,一般的電機很難實現對位置和角度的精確控制,在一些智能化要求較高的場合,用模擬晶元控制器及信號發生器來控制有一定局限性。而用單片機控制步進電機可以改善性能,步進電機能實現精確的角度和轉數,具有良好的步進特性,最適合數字控制。在工控設備中得到了廣泛的應用。而單片機具有晶元體積小,兼容性強,低電壓地,低功耗等特點,使單片機成為驅動步進電機的最佳空盒子單元。所以單片機控制步進電機系統控制精度高,運行穩定,得以廣泛運用。
1 單片機控制步進電機的一般原理
1.1 步進電機
1.1.1 步進電機介紹
步進電機是將電脈沖信號轉變為角位移或線位移的開環控制元件。在非超載的情況下,電機的轉速、停止的位置只取決於脈沖信號的頻率和脈沖數,而不受負載變化的影響,即給電機加一個脈沖信號,電機則轉過一個步距角。這一線性關系的存在,加上步進電機只有周期性的誤差而無累積誤差等特點。使得在速度、位置等控制領域用步進電機來控制變的非常的簡單。雖然步進電機已被廣泛地應用,但步進電機並不能象普通的直流電機、交流電機在常規下使用。它必須由雙環形脈沖信號、功率驅動電路等組成控制系統方可使用。因此用好步進電機卻非易事,它涉及到機械、電機、電子及計算機等許多專業知識。
1.1.2 步進電機分類
永磁式(PM)。一般為二相,轉矩和體積都很小,步距角一般為7.5或15°
反應式(VR)。一般為三相,實現大轉矩輸出,步距角為1.5°。
混合式(HB)。兼具永磁式和反應式的優點,分二相和五相,二相步距角為1.8°五相步距角為0.72°。
1.1.3 技術指標
靜態指標
相數
步距角
拍數
定位轉矩
保持轉矩
步進電機動態指標
步距角精度
失步
失調角
最大空載啟動頻率
最大空載運行頻率
運行頻距特性
電機共振點
1.1.4 步進電機工作原理
分析(步進電機展開圖)
以反應式步進電機為例,其典型結構圖如圖1所示。這是一個四相步進電機,當相控制繞組接通脈沖電流時,在磁拉力作用下使相的定、轉子對齊,相鄰的B 相和D 相的定、轉子小齒錯開。若換成B 相通電,則磁拉力使B 相定、轉子小齒對齊(轉過) ,而與B 相相鄰的C 相和A 相的定、轉子小齒又錯開,即步進電機轉過一個步距角。若按A →B →C →D →A ⋯規律循環順序通電,則步進電機按一定方向轉動。若改變通電順序為A →D →C →B →A ,則電機反向轉動。這種控制方式稱為四相單四拍。若按AB →BC →CD →DA →AB或A →AB →B →BC →C →CD →D →DA →A 順序通電則稱為四相雙拍或四相單、雙八拍。無論採用哪種控制方式,在一個通電循環內,步進電機的轉角恆為一個齒距角。所以,可以通過改步進電機通電循環次序來改變轉動方向,可以通過改變通電頻率來改變其角頻率。運用單片機的輸出功能,通過編程實現輸出四個信號分別給步進電機的四相A、B、C、D ,並通過輸出時信號的循環次序,來設定步進電機的轉動方向及輸出信號的頻率以便設定步進電機的轉動頻率。
圖1 反應式步進電機結構圖
實現原理
採用單片機產生A、B、C、D 的四相信號,當採用單片機進行控制時,需要在單片機和步進電機中間設隔離電路以使強弱電分離。由於步進電機的驅動電流相對較大,可增設放大電路來提供步進電機的工作電流。系統電路由五部分組成,即單片機、隔離、放大、電源及步進電機。
1.2 單片機
功能特性描述
AT89S52是一種低功耗、高性能CMOS8位微控制器,
具有8K 在系統可編程Flash 存儲器。使用Atmel 公
司高密度非易失性存儲器技術製造,與工業80C51
產品指令和引腳完全兼容。片上Flash允許程序存儲
器在系統可編程,亦適於常規編程器。在單晶元上,
擁有靈巧的8 位CPU 和在系統可編程Flash,使得
AT89S52為眾多嵌入式控制應用系統提供高靈活、超
有效的解決方案。AT89S52具有以下標准功能:8k字
節Flash,256位元組RAM,32 位I/O 口線,看門狗定時
器,2 個數據指針,三個16 位定時器/計數器,一個6
向量2級中斷結構,全雙工串列口,片內晶振及時鍾電
路。另外,AT89S52 可降至0Hz 靜態邏輯操作,支持
2種軟體可選擇節電模式。空閑模式下,CPU停止工作,
允許RAM、定時器/計數器、串口、中斷繼續工作。掉
電保護方式下,RAM內容被保存,振盪器被凍結,單
片機一切工作停止,直到下一個中斷或硬體復位為止。
2 步進電機驅動實現
2.1簡介
步進電機在單單僅給予電壓時,電機是不會動作的,必須由脈沖產生器提供位置(脈波數)、速度的脈沖信號指令,以及驅動器驅動電流流過電機內部線圈、依順序切換激磁相序的方式才能夠讓電機運 轉。所以欲使步進電機動作的必要系統組成有:
(1)脈沖產生器:給予角度(位置移動量)、動作速度及運轉方向之脈沖信號的電機驅動指令。
(2)步進驅動器:依控制器所投入的脈沖信號指令,提供電流來驅動步進電機動作。
(3)步進電機:提供轉矩動力輸出來帶動負載。所以步進電機系統構成簡單,不需要速度感應器、位置感測器, 即能依照脈沖產生器所輸入的脈沖來做到速度及位置的控制。
2.2驅動選擇
步進電機可以選用專用的電機驅動模塊,也可以自己構建驅動電路。一般有以下幾種選擇:
專用驅動模塊,如L298,FT5754等,這類驅動介面簡單,這類可以驅動步進電機,直流電機等。
達林頓驅動器ULN2803,這個晶元可以一次驅動八線步進電機。
自己構建,通過三極體,74als04,等系列元件構成。但這樣系統可靠性會降低,會另外給系統帶來誤差。
3 系統硬體設計
1 單片機控制電機
如圖3
說明:
這個部分為單片機控制步進電機部分,80s52單片機通過達林頓驅動器ULN2803來驅動步進電機,80s52的P1.0-P1.4發送控制信號給驅動器,然後驅動器的四根線把信號傳遞給電機,使電機實現正反轉等。電機部分接12V直流電源。
3.2 鍵盤
如圖4
說明:
本系統中採用了四個按鍵,分別與80s52的四個引腳相連,分別為LCDEN,RS,WR,RD;分別實現的功能是電機加速,減速,正反轉。鍵盤一旦按下則表示向單片機發送了有效信號,單片機就相應的進行調節。對於鍵盤的鍵按下的時候分為幾個步驟,當鍵盤按下的時候,接通電路,鍵盤掃描檢測低電平,但檢測到低電平之後不能夠判斷鍵是否被按下,因為抖動可能引起這個變化,所有大概延時5~10ms之後再進行檢測。如果再次檢測到低電平之後說明鍵被按下。這個過程就是所說的消除抖動。
3.3 顯示部分
如圖5
說明:
對於顯示部分,因為這個系統只是顯示轉速,所以採用了LED共陽極數碼管。
並且用了74HC573鎖存器,74HC573鎖存器輸出電流大,介面電路簡單。本系統採用了兩個74HC573鎖存器,分別為段選和位選。段選為數碼管的顯示數字,位選為選中相應的數碼管。
程序流程圖
總結
通過本次的課程論文,讓我真實的感受到一個完整的系統設計過程。這次的的論文從開始的整體布局,排版,到內容中的系統設計直到最後完成。每個流程下來,都帶給了我很多的新東西,特別在設計完系統之後做硬體部分中,先是用protel99se畫圖,好多圖在庫中找不到,找不到就自己畫,然後封裝,封裝的時候還要用游標卡紙對買來的元件進行精確的測量,然後才能在封裝的過程中保證精度。最後做完圖之後還要布線,布線完成後再發到廠家去做。事實上這個過程我用買好的空板做的,因為元件不多。所以就買了相應的元件直接再PCB板上焊接好的。在焊接的過程中也會感受到很多東西,因為很多需要注意的。不過這個過程多多嘗試就會有進步的。焊接完後就是代碼調試階段。最後就完成了這個小型系統的設計。
致 謝
在此,感謝我的老師以及周圍的同學。本次的論文得益於同學們的幫助。最後還要感謝我的父母,是他們一直在背後支持著我。
謹以此文獻給他們!
參考文獻
[1] 張永楓,王靜霞,楊宏利. 單片機應用實訓教程. 西安電子科技大學出版社,2005.
[2] 郭天祥. 51單片機C語言教程. 電子工業出版社 2008
附錄
C代碼
單片機控制步進電機
實現功能:
定時器中斷:定時時間設置為30秒,首先給的初值每次中斷為5ms,經過20次中斷為1秒,半分鍾三十秒則要中斷600次,所有到達六百次後就把計數n中的值讀取到數碼管中顯示出來。
鍵盤檢測:進行速度控制的時候按下相應的鍵則會對應的進行速度調節。
數碼管顯示:
驅動部分:
#include <reg52.h>
#define uchar unsigned char
sbit la=P2^6;
sbit wela=P2^7;
sbit jia_key=P3^6;
sbit jian_key=P3^7;
sbit zf_key=P3^5;
sbit stop_key=P3^4;
bit flag=0;
uchar num1,n;
uchar num=0,show_num=2,maichong=4,table_begin=0;
uchar code table1[]={0x01,0x02,0x04,0x08,0x08,0x02,0x01};
uchar code table[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
// 延時部分
void delay(uchar i)
{
uchar j,k;
for(j=i;j>0;j--)
for(k=110;k>0;k--);
}
// 顯示部分
void display()
{
la=0;
P0=table[show_num];
la=1;
la=0;
wela=0;
P0=0xfe;
wela=1;
wela=0;
delay(5);
P0=table[0];
la=1;
la=0;
P0=0xfd;
wela=1;
wela=0;
delay(5);
}
// 鍵盤檢測部分
void key()
{
if(jia_key==0)
{
delay(5);
if(jia_key==0)
{
num++;
if(num==4)
num=3;
while(jia_key==0)
}
}
if(jian_key==0)
{
delay(5);
if(jian_key==0)
{
if(num!=0)
num--;
else
num==0;
while(jian_key==0);
}
}
if(zf_key==0)
{
delay(5);
if(zf_key==0)
{
flag=~flag;
while(zf_key==0);
}
}
if(stop_key==0)
{
delay(4);
if(stop_key==0)
{
show_num=0;
maichong=0;
}
while(stop_key==0)
}
}
// 鍵盤檢測結果
void dispose()
{
switch(num)
{
case 0:
maichong=5;
break;
case 1:
maichong=4;
break;
case 2:
maichong=3;
break;
case 3:
maichong=2;
break;
}
if(flag==0)
{
table_begin=0;
}
else
table_begin=4;
}
// 數碼管驅動部分
void qudong()
{
uchar i,j;
for(j=0+table_begin;j<4+table_begin;j++)
{
P1=table[j];
for(i=0;i<maichong;i++)
{
dispaly();
}
}
}
// 主函數部分
void main()
{
while(1)
{ init();
key();
dispose();
qudong();
n++;
}
}
// 定時器中斷初始化
void init()
{
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1; // 開總中斷
ET0=1;// 開定時器0中斷
TR0=1;// 啟動定時器0
}
// 定時器中斷調用
void T0_time() intterrupt 1 // T0中斷
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
num1++;
if(num1==600)
{
show_num=n;
num1=0;
n=0;
}
}
Ⅱ 電動車的控制器的原理是什麼有什麼作用
[color=#9932CC][/color]車用電機控制器近年來的發展速度之快,使人難以想像,操作上越來越「傻瓜」化,而顯示則越來越復雜化.比如,車速的控制已經發展到「巡航鎖定」;驅動方面,有的同時具有電動性能和助力功能,如果轉換到助力狀態,藉助鏈條張力測力器,或中軸扭力感測器,只要用腳踏動腳蹬,便可執行助力或確定助力的大小.這期本刊開始給您講述控制器的知識,讓您對控制器有一個更全面的了解.
一、控制器與保護功能
(一)控制器簡介
簡略地講控制器是由周邊器件和主晶元(或單片機)組成.周邊器件是一些功能器件,如執行、采樣等,它們是電阻、感測器、橋式開關電路,以及輔助單片機或專用集成電路完成控制過程的器件;單片機也稱微控制器,是在一塊集成片上把存貯器、有變換信號語言的解碼器、鋸齒波發生器和脈寬調制功能電路以及能使開關電路功率管導通或截止、通過方波控制功率管的的導通時間以控制電機轉速的驅動電路、輸入輸出埠等集成在一起,而構成的計算機片.這就是電動自行車的智能控制器.它是以「傻瓜」面目出現的高技術產品.
控制器的設計品質、特性、所採用的微處理器的功能、功率開關器件電路及周邊器件布局等,直接關繫到整車的性能和運行狀態,也影響控制器本身性能和效率.不同品質的控制器,用在同一輛車上,配用同一組相同充放電狀態的電池,有時也會在續駛能力上顯示出較大差別.
(二)控制器的型式
目前,電動自行車所採用的控制器電路原理基本相同或接近.
有刷和無刷直流電機大都採用脈寬調制的PWM控制方法調速,只是選用驅動電路、集成電路、開關電路功率晶體管和某些相關功能上的差別.元器件和電路上的差異,構成了控制器性能上的不大相同.控制器從結構上分兩種,我們把它稱為分離式和整體式.
1、分離式 所謂分離,是指控制器主體和顯示部分分離(圖4-22、圖4-23).後者安裝在車把上,控制器主體則隱藏在車體包廂或電動箱內,不露在外面.這種方式使控制器與電源、電機間連線距離縮短,車體外觀顯得簡潔.
2、一體式 控制部分與顯示部分合為一體,裝在一個精緻的專用塑料盒子里.盒子安裝在車把的正中,盒子的面板上開有數量不等的小孔,孔徑4~5mm,外敷透明防水膜.孔內相應位置設有發光二極體以指示車速、電源和電池剩餘電量.
(三)控制器的保護功能
保護功能是對控制器中換相功率管、電源免過放電,以及電動機在運行中,因某種故障或誤操作而導致的可能引起的損傷等故障出現時,電路根據反饋信號採取的保護措施.電動自行車基本的保護功能和擴展功能如下:
1、制動斷電 電動自行車車把上兩個鉗形制動手把均安裝有接點開關.當制動時,開關被推押閉合或被斷開,而改變了原來的開關狀態.這個變化形成信號傳送到控制電路中,電路根據預設程序發出指令,立即切斷基極驅動電流,使功率截止,停止供電.因而,既保護了功率管本身,又保護了電動機,也防止了電源的浪費.
2、欠壓保護 這里指的是電源的電壓.當放電最後階段,在負載狀態下,電源電壓已經接近「放電終止電壓」,控制器面板(或儀表顯示盤)即顯示電量不足,引起騎行者的注意,計劃自己的行程.當電源電壓已經達到放終時,電壓取樣電阻將分流信息饋入比較器,保護電路即按預先設定的程序發出指令,切斷電流以保護電子器件和電源.
3、過流保護 電流超限對電機和電路一系列元器件都可能造成損傷,甚至燒毀,這是絕對應當避免的.控制電路中,必須具備這種過電流的保護功能,在過流時經過一定的延時即切斷電流.
4、過載保護 過載保護和過電流保護是相同的,載重超限必然引起電流超限.電動自行車說明書上都特別註明載重能力,但有的騎行者或未注意這一點,或抱著試一下的心理故意超載.如果沒有這種保護功能,不一定在哪個環節上引起損傷,但首當其沖的就是開關功率管,只要無刷控制器功率管燒毀一隻,變成兩相供電後電動機運轉即變得無力,騎行者立即可以感覺到脈動異常;若繼續騎行,接著就燒毀第2個、第3個功率管.有兩相功率管不工作,電動機即停止運行,有刷電機則失去控制功能.因此,由過載引起的過電流是很危險的.但只要有過電流保護,載重超限後電路自動切斷電源,因超載而引起的一系列後果都可以避免.
5、欠速保護 仍然屬於過流保護范疇,是為不具備0速起步功能的無刷控制系統而設置,
6、限速保護 是助力型電動自行車獨有的設計控製程序.車速超過某一預定值時,電路停止供電不予助力.對電動型電動自行車而言,統一規定車速為20km/h,車用電動機在設計時,額定轉速就已經設定好了,控制電路也已經設好.電動自行車只能在不超過這個速度狀態下運行.
控制器的位置不會影響到性能,主要視設計者的意圖.但有幾項原則:(1)在運行操作允許時;(2)在整體布置允許時;(3)在線路布設要求時;(4)在配套設施要求時
Ⅲ 全自動洗衣機的主板為什麼總是燒壞
全自動洗衣機主板燒壞的原因:
1,一般電壓不穩,進水,或洗衣服過多,都會燒電腦板的,
2,
硅管燒毀就是超載,電流大,檢查驅動設備是否正常,
3,1功率不匹配2或是電壓不有時高有時低3電路板質量問題。
Ⅳ 51單片機C語言裡面,定義bit的方法,有哪些,請舉例,謝謝!
一共可以定義16個位元組的位定址變數
static uchar bdata CanBusFlag=0; //can標志
sbit CanRcv_Good=CanBusFlag^0; //成功接收標志
sbit CanSend_Good=CanBusFlag^1; //成功發送標志
sbit CanErrFlag=CanBusFlag^2; //can匯流排錯誤標志
sbit CanDtOverFlag=CanBusFlag^3; //can匯流排超載標志
sbit CanWuiFlag=CanBusFlag^4; //can匯流排喚醒中斷
//你改變CanBusFlag,下面的一堆變數也變了,反之既然
定義:
union UniTEMP // 溫度采樣值
{
uint TEMP;
uchar TEMP_AD[2];
}idata uTEMP; //idata是定義變數存儲空間,這里用的8952單片機,有idata空間
。。。。
程序裡面使用:
uTEMP.TEMP=XXX;//其實TEMP_AD[2]數組裡面的內容也變了,union 結構嘛
如果你只定義8個位,就用第一種方式。
union 結構是為了方便大數據的操作才使用的。如果你要用union 定義一個8位變數的每一位,想應該可以吧。不過不知道符不符合C語法,編一個試試吧~哈哈
Ⅳ 起重機裝超載限制器哪種好
起重機超載限制器是由軸銷式感測器將重量轉換成電信號經傳輸電纜與限制器連接,經限制器求和放大器、A/D 轉換器、單片機運算,當吊籠內的重量達到或超過其設定值時,限制器內相應繼電器分別動作,與升降機控制系統連接,使升降機安全、可靠的運行。這個沒有好不好這么一說吧,得看是不適合了。
秦皇島前景光電的起重機超載限制器很好,曾經用於神州5號發射台上。可以聯系包學強,電話 0 3 3 5——8 5 3 9 8 0 7
Ⅵ 描述:使用單片機(STC89C52)設計公交車內乘客人數計數系統,本系統能夠根據是否有乘客上、下
工程量太大,不適合在此求助。
Ⅶ 如何用單片機控制電機的轉速和方向,要是有截圖和程序就更好了,不勝感激!!
步進電機是將電脈沖信號轉變為角位移或線位移的開環控制元步進電機件。在非超載的
情況下,電機的轉速、停止的位置只取決於脈沖信號的頻率和脈沖數,而不受負載變化的影
響,當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角
度,稱為「步距角」,它的旋轉是以固定的角度一步一步運行的。可以通過控制脈沖個數來控
制角位移量,從而達到准確定位的目的;同時可以通過控制脈沖頻率來控制電機轉動的速度
和加速度,從而達到調速的目的。
步進電機驅動方式:
1、1相勵磁法:每一瞬間只有一個線圈導通,其他線圈休息。其特點是勵磁方法簡單,耗
電低,精確度良好。但是力矩小、震動大,每次勵磁信號走的角度是標稱角度。
2、2相勵磁法:每一瞬間有兩個線圈同時導通,特點是力矩大、震動較小,每次勵磁轉動
角度是標稱角度。
3、1-2相勵磁法:1相和2相輪流交替導通,精度較高,且運轉平滑。每送一個勵磁信號轉
動二分之一標稱角度。有稱為半步驅動。4相電機中,1、2種方式稱4相4拍,3種稱4相
8拍。
Ⅷ 單片機按鍵加一、減一
利用外部中斷實現按鍵按一下數碼管數字加1,實現00-99的循環,另一個按鍵實現清零,不管數碼管數字是多少,該按鍵按下數碼管顯示00
Ⅸ 單片機檢測顯示設備打開失敗
單片機檢測顯示設備打開失敗的原因有如下幾點:
1、 燒錄器驅動沒有安裝或者驅動安裝不正確
2、 燒錄器本身存在問題
3、 若用的是Windows 7系統,請先禁用驅動程序簽名強制,步驟如下:(1)WIN鍵+R打開運行,輸入組策略編輯器命令gpedit.msc然後確定(2)選擇用戶配置中的管理模板打開(3)管理模板中點擊系統打開(4)找到驅動程序安裝,然後點擊右邊的設備驅動程序的代碼簽名(5)選項改為忽略或警告。成功禁用後,到STC官方下載一個超載器,裡面有USB驅動,重新安裝即可
4、 燒寫器的USB連接存在問題,或者是單片機把USB的5V電壓拉下來了