www.simotd.comSTM32 步进西玛电机开发板 TFT 2.8 L6205 DMX512控制西玛西玛电机

   2015-03-09 2290
核心提示:www.simotd.com介绍:1.第2版资料 REV2.02.STM32 V3.5版本的库 标准库。3.FSMC 和 M1 M2 可同时工作 多线程概念。4.主要功能还是
www.simotd.com

介绍:

1.第2版资料 REV2.0

2.STM32 V3.5版本的库 标准库。

3.FSMC 和 M1 M2 可同时工作 多线程概念。

4.主要功能还是西玛电机的控制

a.当然如果一点步进西玛电机基础都没有的 建议看一下基础 比较好入手。
b.涉及步进西玛电机细分控制理论,速度控制理论。这里我要说的是 我当前在程序中使用的。 当然这方面的理论很多。
c.矢量控制算???,如果不需要就使用最精简版。程序里面有注释 这样更容易入门。
d.最高细分16细分 轻量级 (质量)为Basic版本 PRO版本未发行 重量级 可以到128细分 或是256细分。


基于SVPWM控制原理 步进西玛电机细分控制 低噪音 低速高力矩


http://yonyon.taobao.com





www.simotd.com

关键性矢量算法


static void Motor1PostionControlSpeed(void) // LOOP IN T0

{


//---------------------------------------------------------------------------------------

if (CheckValChange3(Motor1_dynamic_postion_gap))

{

if (((Motor1_user_postion_gap-step_startstop*MaxStep) < Motor1_dynamic_postion_gap) && (Motor1_dynamic_postion_gap <= Motor1_user_postion_gap))

LineFlag = 1; //1 加速 0 减速 2 匀速 (停止)

}


Motor1_drive(Motor1_speed_postion_dir,MotorXSpeedPos);


//MicroStep and MaxStep Motor1_postion_Current Motor1_dynamic_postion_gap

//-------- CheckValChange --------

if (CheckValChange2(Motor1_dynamic_postion_gap/MaxStep))

{

if (Motor1WillBackFlag==0)

{ //-----------------------------------------------------------------

if ((0 < Motor1_dynamic_postion_gap) && (Motor1_dynamic_postion_gap <= MotorXSpeedPos*MaxStep)) //loop 20*256/x (256-32) 20为20步

{

if (MotorXSpeedPos)

{

MotorXSpeedPos--; //减速制动

LineFlag = 0;

}

}//-----------------------------------------------------------------

else if ((step_startstop*MaxStep < Motor1_dynamic_postion_gap) && (Motor1_dynamic_postion_gap <= (Motor1_user_postion_gap-step_startstop*MaxStep)))

{

LineFlag = 2;

}//-----------------------------------------------------------------

else if (((Motor1_user_postion_gap-step_startstop*MaxStep) < Motor1_dynamic_postion_gap) && (Motor1_dynamic_postion_gap <= Motor1_user_postion_gap))

{

if (MotorXSpeedPos {

MotorXSpeedPos++; //加速启动

LineFlag = 1;

}

}//-----------------------------------------------------------------

else if (Motor1_dynamic_postion_gap > Motor1_user_postion_gap)

{

Motor1WillBackFlag = 1; //减速制动

}

}

//----------------------------------------------------------------------------------------

else if ((Motor1WillBackFlag==1))

{

if (MotorXSpeedPos)

{

MotorXSpeedPos--;

LineFlag = 0;

}

else

{

Motor1WillBackFlag = 0;

}

}

}


//----------------------------------------------------------------------------------------------------------------------------------------------

}西玛西玛电机

 
举报收藏 0评论 0
更多>相关评论
暂时没有评论,来说点什么吧
更多>同类资讯
  • ydgi7876
    加关注0
  • 没有留下签名~~
推荐图文
推荐资讯
点击排行
网站首页  |  公益慈善栏目 赞助本站可以扫描支付  |  免费推广计划  |  全球资源网顾问团  |  帮助中心  |  企业文化  |  关于我们  |  全球信息中心  |  隐私政策  |  使用协议  |  版权隐私  |  广告服务  |  积分换礼  |  网站留言  |  帮助中心
本站对所有发布的信息不承担任何责任,用户应决定是否采用并承担风险。全息元宇宙联合会