一、目標(biāo)功能
輸入多個(gè)目標(biāo)角度,以及每個(gè)角度對應(yīng)的速度,實(shí)現(xiàn)步進(jìn)電機(jī)的多段多速度轉(zhuǎn)動(dòng)
二、計(jì)算過程
**2.1 **簡化C與n函數(shù)關(guān)系
根據(jù)上一節(jié)內(nèi)容,定時(shí)器初值與速度函數(shù)關(guān)系為

硬件系統(tǒng)確定后,angle、Xtal、X均為定值,為降低計(jì)算量,將公式中可以提前計(jì)算好的地方直接計(jì)算出來

根據(jù)硬件設(shè)置情況,step=1.8,Xtal=12000000,X=2,計(jì)算K值

2.2計(jì)算步數(shù)(step_num)與角度(angle)函數(shù)關(guān)系

三、程序代碼
//定義步進(jìn)電機(jī)轉(zhuǎn)動(dòng)段數(shù)及運(yùn)動(dòng)參數(shù)
#define para 5
unsigned int angle[5]={90,360,720,180,0}; //電機(jī)目標(biāo)轉(zhuǎn)角
unsigned int v[5]={20,60,120,60,20}; //電機(jī)速度
void main()
{
//計(jì)算step_num與c
step_num=10*angle[0]/9;
c=65536-150000/v[0];//計(jì)算V[0]對應(yīng)的定時(shí)器初值
while(1)
{
}
}
//定時(shí)器0中斷程序
void time0_int() interrupt 1
{
TH0=c/256;//重裝定時(shí)寄存器初值
TL0=c%256;
//低電平切換到高電平,產(chǎn)生一個(gè)脈沖
PUL=1;
_nop_();_nop_();nop_();nop_();
PUL=0;
DIR==1?n++:n--;//根據(jù)方向,判斷步數(shù)加或減
if(n==step_num)//當(dāng)前階段完成判斷
{
i++;
if(i==para)//整個(gè)運(yùn)動(dòng)階段走完
{
TR0=0;//電機(jī)停止
}
else //計(jì)算下一階段參數(shù)
{
//刷新步數(shù)與速度值
step_num=10*angle[i]/9;
c=65536-150000/v[i];
//判斷方向
if(angle[i] >angle[i-1])
DIR=1;
else
DIR=0;
}
}
}
四、總結(jié)
此種方式利用定時(shí)器精確定時(shí)能力,從而控制電機(jī)轉(zhuǎn)速,同時(shí)實(shí)現(xiàn)步進(jìn)電機(jī)的多段運(yùn)動(dòng),至此實(shí)現(xiàn)了步進(jìn)電機(jī)三個(gè)主要參數(shù)角度、速度、方向的簡單協(xié)同操作。
-
寄存器
+關(guān)注
關(guān)注
31文章
5511瀏覽量
128485 -
步進(jìn)電機(jī)
+關(guān)注
關(guān)注
152文章
3212瀏覽量
151321 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3350瀏覽量
121371 -
定時(shí)器中斷
+關(guān)注
關(guān)注
0文章
49瀏覽量
11670 -
控制電機(jī)
+關(guān)注
關(guān)注
0文章
249瀏覽量
19023
發(fā)布評論請先 登錄
基于FPGA的步進(jìn)電機(jī)多軸控制器該怎么設(shè)計(jì)?
如何實(shí)現(xiàn)對步進(jìn)電機(jī)的正反轉(zhuǎn)動(dòng)控制?
怎樣去實(shí)現(xiàn)STM32控制步進(jìn)電機(jī)的源程序呢
如何去實(shí)現(xiàn)TMC5160步進(jìn)電機(jī)的簡單轉(zhuǎn)動(dòng)呢
怎樣使用GPIO去實(shí)現(xiàn)步進(jìn)電機(jī)的控制呢
步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于FPGA的多軸步進(jìn)電機(jī)控制器的設(shè)計(jì)
多軸步進(jìn)電機(jī)插補(bǔ)控制器及多軸步進(jìn)電機(jī)運(yùn)動(dòng)控制卡控制方法pdf資料分享
分析:plc是否能夠控制步進(jìn)電機(jī)
步進(jìn)電機(jī)控制方式
簡單實(shí)現(xiàn)51單片機(jī)步進(jìn)電機(jī)的驅(qū)動(dòng)
使用STM32簡單控制TMC5160驅(qū)動(dòng)步進(jìn)電機(jī)

如何實(shí)現(xiàn)簡單的步進(jìn)電機(jī)多段控制呢?
評論