打印

F2812控制步进电机实现运动轨迹

[复制链接]
1463|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
current杨|  楼主 | 2014-3-16 21:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zhangmangui| | 2014-3-16 23:54 | 只看该作者
你可以先用IO口写  这样很简单的  也就是一步一步送脉冲就可以啦

使用特权

评论回复
板凳
current杨|  楼主 | 2014-3-17 09:07 | 只看该作者
那我要实现一个轨迹的话应该怎么控制,随便一个轨迹就可以。     有没有类似的程序啊。

使用特权

评论回复
地板
zhangmangui| | 2014-3-17 13:02 | 只看该作者
current杨 发表于 2014-3-17 09:07
那我要实现一个轨迹的话应该怎么控制,随便一个轨迹就可以。     有没有类似的程序啊。 ...

我没有相关的代码  
这个肯定是一个脉冲对应一个角度   将你的轨迹转换为对应的角度  也就是脉冲个数就可以啦

使用特权

评论回复
5
ntups| | 2014-3-17 20:19 | 只看该作者
:(

使用特权

评论回复
6
WZQ3| | 2014-3-18 20:01 | 只看该作者
先使用EXCEL工具把运动轨迹转换为脉冲逻辑,可以是单轴,也可以是多轴,先不要考虑DSP如何去实现。
如果只是控制步进电机驱动器,MCU就可以了,不必使用DSP;如果不需要反馈控制,就不必劳驾DSP了。

使用特权

评论回复
7
gcxzhz| | 2014-3-18 22:55 | 只看该作者
全国大学生电子设计大赛 有一年的题目是在板上画圆 ,我们当初做过这个题用的是 步进电机 +stm32  晚上有很多程序  你可以借鉴一下

使用特权

评论回复
8
zhangjin_comeon| | 2014-3-18 23:16 | 只看该作者
学习  楼上给位的建议不错

使用特权

评论回复
9
current杨|  楼主 | 2014-3-19 09:34 | 只看该作者
实现轨迹倒不是什么问题,但是怎样定时啊,我用T1和T3来分别进行定时,但是定时之后没有定时的效果。。。给位帮我看看我的代码。提提意见。
EALLOW;
    GpioMuxRegs.GPAMUX.all=0x0040;     //先向右转动
    GpioMuxRegs.GPBMUX.all=0x0000;     //上下不发生转动
    EDIS;
    EvaRegs.T1CON.all=0x1002|0x0040;
        for(i=0;i<10;)
                {
                    i++;
                }
   
   
    EALLOW;
    GpioMuxRegs.GPBMUX.all=0x0000;     //左右不发生转动
    GpioMuxRegs.GPAMUX.all=0x00C0;     //向上转动
    EDIS;
    EvbRegs.T3CON.all=0x1002|0x0040;
     for(i=0;i<10;)
                {
                    i++;
                }
   
   
    EALLOW;
    GpioMuxRegs.GPAMUX.all=0x0040;     //先向左转动
    GpioMuxRegs.GPBMUX.all=0x0000;     //上下不发生转动
    EDIS;
   EvaRegs.T1CON.all=0x1002|0x0040;
        for(i=0;i<10;)
                {
                    i++;
                }
   
   
   
    EALLOW;
    GpioMuxRegs.GPBMUX.all=0x0000;     //左右不发生转动
    GpioMuxRegs.GPAMUX.all=0x0040;     //向下转动
    EDIS;
   EvbRegs.T3CON.all=0x1002|0x0040;
     for(i=0;i<10;)
                {
                    i++;
                }



这里是我EV和EB模块的设置
EvaRegs.T1PR=0xFFFF;         //定时器1周期
                EvaRegs.T1CMPR=0x7FFF;          //定时器1比较值
                EvaRegs.T1CNT=0x0000;           //定时器1计数器
                EvaRegs.T1CON.all=0x1002;          //设置技术模式为连续曾,使能定时器和比较操作,采用内部时钟HSPCLK
                EvaRegs.T2PR=0xFFFF;
                EvaRegs.T2CMPR=0xF7FF;             //定时器2周期
                EvaRegs.T2CNT=0x0000;                //定时器2比较值
                EvaRegs.T2CON.all=0x1002;             //定时器2计数器
                EvaRegs.GPTCONA.bit.TCMPOE=1;            //设置T1PWM和T2PWM
                                                         //通过逻辑产生T1/T2 PWM
                EvaRegs.GPTCONA.bit.T1PIN=2;            //GP定时器1比较时低有效
        EvaRegs.GPTCONA.bit.T2PIN=2;     //

      
            EvbRegs.T3PR=0xFFFF;         //定时器1周期
                EvbRegs.T3CMPR=0x7FFF;         //定时器1比较值
                EvbRegs.T3CNT=0x0000;           //定时器1计数器
                EvbRegs.T3CON.all=0x1002;          //设置技术模式为连续曾,使能定时器和比较操作,采用内部时钟HSPCLK
                EvbRegs.T4PR=0xFFFF;
                EvbRegs.T4CMPR=0xF7FF;     //定时器2周期
                EvbRegs.T4CNT=0x0000;                //定时器2比较值
                EvbRegs.T4CON.all=0x1002;             //定时器2计数器
                EvbRegs.GPTCONB.bit.TCMPOE=1;            //设置T1PWM和T2PWM
                                                         //通过逻辑产生T1/T2 PWM
                EvbRegs.GPTCONB.bit.T3PIN=2;            //GP定时器1比较时低有效
        EvbRegs.GPTCONB.bit.T4PIN=2;   

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

42

帖子

0

粉丝