zhuzi1441 发表于 2009-8-3 16:05:43

Mega64能同事控制4台步进电机动转吗?

以前没有做过涉及到控制电机的项目,对电机控制了解的甚少,最近一个项目,要用的四台步进电机,其中有三台同时工作,这三台中有两台工作情况相同,基本就是转120度停一下,然后再转120度再停,大概也就是1到2秒转一圈就行,但这两个电机不一定是同步运行,另一台步进电机的运动规迹是正转120度然后返转120度,然后再正转一120度,就这样往返运动下去,速度也不用太快,一秒内最多摆两次就可以。请各位前辈给指点一个,看看用什么方案,AVR单片机能胜任吗,用它的三个定时器,CTC模示,如要不行的话应该采用什么方案好呀,先谢谢各位了!

shinehjx 发表于 2009-8-3 16:19:16

完全可以,1秒一圈也就是60转/分钟而已,只需一个定时器即可

zhuzi1441 发表于 2009-8-3 16:25:34

谢谢楼上的,三台电机同时工作,要分别控制,一个定时器可以吗?

hbzxx 发表于 2009-8-3 16:29:21

八个都可以.
定时 一到就依此检测十个的状态.

ada1983 发表于 2009-8-3 16:30:26

有3个定时器,定时器1的两个比较器可以拆开用,这就4个了。如果有其他外设用到定时器,就必须整合使用了。

另,楼上的说一个定时器有点夸张了,项目是有4个电机的,如果只用一个定时器,控制电机的速度和长度比较吃力......

hbzxx 发表于 2009-8-3 16:34:51

定时到
第1个:switch (开关状态)
         { case 开:switch (位置)
                            {case 位置1:...
                           case 位置2:...
                              .....
                            }
             case 关:...
             .....      
            }
第2个:switch (开关状态)
         { case 开:switch (位置)
                            {case 位置1:...
                           case 位置2:...
                              .....
                            }
             case 关:...
             .....      
            }
第n个..........

ada1983 发表于 2009-8-3 16:41:23

楼上的指的可能是直接驱动电机了,楼主应该是用了驱动器的。
另:步进电机控制要求实时性较高,这么驱动电机或者驱动器都是不可取的,电机运行起来效果不好......

shinehjx 发表于 2009-8-3 17:07:38

楼主所描述的速度较低,所以没有问题的

用一个定时器做时基,比如固定20us中断一次,再扩展多个软定时
//定时器中断处理
if (StepTime_1 != 0)
{
    if (--StepTime_1 == 0)
    {
      StepTime_1 = SetTime_1;   // 定时1 重装载
      ......
    }
}
if (StepTime_2 != 0)
{
    if (--StepTime_2 == 0)
    {
      StepTime_2 = SetTime_2;   // 定时2 重装载
      ......
   }
}
if (StepTime_3 != 0)
{
    if (--StepTime_3 == 0)
    {
      StepTime_3 = SetTime_3;   // 定时3 重装载
      ......
   }
}
if (StepTime_4 != 0)
{
    if (--StepTime_4 == 0)
    {
      StepTime_4 = SetTime_4;   // 定时4 重装载
      ......
   }
}

ada1983 发表于 2009-8-3 17:30:08

用软定时的方法可行,但是每个电机的速度毕竟就不是那么精确了。

当然,如果速度较慢,也没有这方面的要求的话可行,如果有高速,再涉及的到加减速的话就有问题了,限定了时基,就使得加速曲线的高速部分不会匀称了,以5000Hz为例,20us时基,需要10个软延时,他的最小上一步就是11个软延时,也就是4545Hz,跳动太大了。

只是方法问题,个人倾向于多个定时器,将来调整方便......

zhuzi1441 发表于 2009-8-4 08:40:07

谢谢各位的指点,听各位这么一说,看来同时控制是没有问题的,我就放心了,那我就用多个定时器算了,大不了再加一片单片机做别的处理工作,反正加几十元的成本还是没有什么问题的,但要求一定要运行稳定,因为不是民用,也不是工业用的。

wukong 发表于 2009-8-4 09:57:22

难道是军用的?你去做军品开发,国家_安全成问题啊
页: [1]
查看完整版本: Mega64能同事控制4台步进电机动转吗?