時(shí)間:2022-10-17 15:59:20來(lái)源:中國(guó)傳動(dòng)網(wǎng)
總體介紹
對(duì)步進(jìn)電機(jī)的控制通常使用PWM控制,改變頻率來(lái)控制速度,然后統(tǒng)計(jì)脈沖個(gè)數(shù)知道電機(jī)當(dāng)前位置,可以很容易實(shí)現(xiàn)加減速規(guī)劃,或者不考慮加減速平穩(wěn)性,直接以小于最大啟動(dòng)速度的速度啟動(dòng),發(fā)完給定個(gè)脈沖后直接關(guān)閉定時(shí)器。以上控制方式都沒(méi)實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的位置的自由控制,即讓步進(jìn)電機(jī)跟隨任意位置曲線(xiàn)運(yùn)動(dòng),此項(xiàng)目是為了實(shí)現(xiàn)步進(jìn)電機(jī)的自由控制,能準(zhǔn)確定位??梢允褂?a href="http://www.wangxinlc.cn/p/coding/" target="_blank" rel="nofollow">編碼器或者電位器作為控制器,用手?jǐn)Q編碼器,步進(jìn)電機(jī)可跟隨一起運(yùn)動(dòng),也可以按照函數(shù)曲線(xiàn)運(yùn)動(dòng)。
步進(jìn)電機(jī)驅(qū)動(dòng)
步進(jìn)電機(jī)驅(qū)動(dòng)器有很多種,如A4988、TMC2208等,常用的驅(qū)動(dòng)方式是脈沖加方向,有的高端點(diǎn)的使用can、串口等方式控制。本篇介紹如何使用脈沖加方向方式對(duì)步進(jìn)電機(jī)進(jìn)行位置的自由控制!
控制原理
使用通信協(xié)議方式控制步進(jìn)電機(jī),可周期性同步位置到驅(qū)動(dòng)器,實(shí)現(xiàn)位置的自由控制,脈沖加方向方式也可抽象為使用通信協(xié)議在與驅(qū)動(dòng)器通信,只不過(guò)是使用增量方式在通信,通過(guò)對(duì)脈沖的累計(jì)得到目標(biāo)位置。
程序使用兩個(gè)定時(shí)器,一個(gè)中斷頻率為1k,用于周期采樣目標(biāo)位置,并計(jì)算當(dāng)前速度,當(dāng)前速度值用于修改另一個(gè)定時(shí)器中斷頻率,所以在第二個(gè)定時(shí)器中判斷目標(biāo)位置與當(dāng)前位置的偏差,然后翻轉(zhuǎn)電平,實(shí)現(xiàn)對(duì)脈沖發(fā)送,同時(shí)判斷方向,對(duì)應(yīng)控制方向控制IO電平。
在其他函數(shù)中可給定任意形式的位置變化,根據(jù)采樣定理,應(yīng)該位置變化頻率不大于500Hz的都能被1k的定時(shí)器中斷正常采樣,由于發(fā)送脈沖需要以一定的頻率發(fā)送,所以第二個(gè)定時(shí)器頻率根據(jù)目標(biāo)位置變化率而改變,可以讓速度平滑,也可以減小CPU帶寬占用。以此方式可實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的自由控制,可使用編碼器或函數(shù)隨意控制電機(jī)!
代碼分析
此程序可實(shí)現(xiàn)對(duì)多個(gè)步進(jìn)電機(jī)的控制,以下是步進(jìn)電機(jī)類(lèi)
/*步進(jìn)電機(jī)控制類(lèi)*/
typedef struct
{
volaTIle unsigned long *gpio_dir; //電機(jī)方向控制GPIO
volaTIle unsigned long *gpio_pluse; //電機(jī)脈沖GPIO
int pluse_count;
int goal_posiTIon;
int last_posiTIon;
int cur_position;
int pos_bias;
int speed;
uint8_t status;
}stepMotor;
步進(jìn)電機(jī)控制核心函數(shù),由一個(gè)簡(jiǎn)易狀態(tài)機(jī)組成,此函數(shù)放上面提到的第二個(gè)中斷函數(shù)執(zhí)行,先得到當(dāng)前偏差,狀態(tài)轉(zhuǎn)換,再發(fā)脈沖
void StepMotorCtrl(stepMotor *motor)
{
switch(motor->status)
{
case 0:
if(motor->goal_position != motor->cur_position) //掃描
{
motor->pos_bias = motor->goal_position - motor->cur_position; //得到偏差
motor->status = 1;
}
break;
case 1:
if(motor->pos_bias > 0)
{
motor->pluse_count ++;
*(motor->gpio_dir) = 1; //正方向
*(motor->gpio_pluse) = !*(motor->gpio_pluse);
if(motor->pluse_count == (motor->pos_bias * 2))
{
motor->cur_position += motor->pos_bias;
motor->pluse_count = 0;
motor->status = 0;
}
}
else
{
motor->pluse_count ++;
*(motor->gpio_dir) = 0; //負(fù)方向
*(motor->gpio_pluse) = !*(motor->gpio_pluse);
if(motor->pluse_count == ((-motor->pos_bias) * 2))
{
motor->cur_position += motor->pos_bias;
motor->pluse_count = 0;
motor->status = 0;
}
}
break;
default:
break;
}
}
中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.wangxinlc.cn)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>鋼鐵廠(chǎng)的“眼科手術(shù)”:維宏線(xiàn)激光如何...
2025-04-30
性能躍升20%!維宏NK300CX Plus數(shù)控系統(tǒng)...
2025-04-11
rpi-image-gen:樹(shù)莓派軟件鏡像構(gòu)建的終...
2025-04-08
【產(chǎn)品解讀】全面提升精密制造檢測(cè)節(jié)拍...
2025-03-31
激光閃耀 智慧引領(lǐng) | WISE MASER 黑武士...
2025-03-20
推薦專(zhuān)題
更多>