zengan007 发表于 2016-5-26 22:06:28

步进电机PWM控制!菜鸟睡不着,好纠结!


我用的是2相4线电机,ABCD接单片机4个IO口(我接的是PA0,1,2,3)可以输出PWM波形,PA口输出接8841。
我看网上人都用PWM控制输入口,而ABCD的波形在一个步距角里貌似不是完整的PWM波形啊,如图A波形。如果用单片机的PWM口输出的话那与电机的步序对不上啊,还是我方式不对呢?不知道哪里理解错误了,好纠结!

error_dan 发表于 2016-5-26 22:50:55

IO直接驱动步进电机的线圈确实要按照步进电机的时序,但是大部分情况下,很少这么干,都会加一个驱动器,此时仅需要输出脉冲和方向信号。
拿PWM直接驱动步进电机线圈的,一般都是做细分控制。

flash3g 发表于 2016-5-27 05:31:18

参考TB6560的官方PDF有你想要的

xiaowu191 发表于 2016-5-27 08:30:44

你对照那个电流矢量图去看,明白了然后就容易了


zengan007 发表于 2016-5-27 08:32:56

error_dan 发表于 2016-5-26 22:50
IO直接驱动步进电机的线圈确实要按照步进电机的时序,但是大部分情况下,很少这么干,都会加一个驱动器,此 ...

大哥,是驱动器还是控制器呢?我用了DRV8841,是控制器还是驱动器?

kerrwang1982 发表于 2016-5-27 08:40:14

以前玩过,用单片机驱动三极管还有MOS管来驱动电机,双细分或者不分。后面到真正使用时发现自制没有意义,直接购买现在的6560才25块,不值得研究,只有最终结果体现才是王道。。

wind2100 发表于 2016-5-27 08:47:09

楼主 是磁场旋转 还没理解到 光看波形没用的

zengan007 发表于 2016-5-27 08:48:30

flash3g 发表于 2016-5-27 05:31
参考TB6560的官方PDF有你想要的

嗯,我去看看。谢谢大哥

zengan007 发表于 2016-5-27 08:48:50

xiaowu191 发表于 2016-5-27 08:30
你对照那个电流矢量图去看,明白了然后就容易了

OK,谢谢大哥

zengan007 发表于 2016-5-27 08:50:19

kerrwang1982 发表于 2016-5-27 08:40
以前玩过,用单片机驱动三极管还有MOS管来驱动电机,双细分或者不分。后面到真正使用时发现自制没有意义, ...

{:sad:} 我也想搞个驱动器玩玩,但是方案改不了啊!{:cry:}

zengan007 发表于 2016-5-27 08:51:33

wind2100 发表于 2016-5-27 08:47
楼主 是磁场旋转 还没理解到 光看波形没用的

大哥,再细说一点,我用那个步序控制,电机可以正转反转呢。换到单片机PWM就不懂了{:cry:}

jufr12315 发表于 2016-5-27 09:16:48

你想PWM怎么控制?PWM控制什么?

zengan007 发表于 2016-5-27 09:18:14

xiaowu191 发表于 2016-5-27 08:30
你对照那个电流矢量图去看,明白了然后就容易了

这里是不是写错了?电机不是完成一个步序(A+B+,A-B+,A-B-,A+B-)才走一个步距角么?

zengan007 发表于 2016-5-27 09:19:57

jufr12315 发表于 2016-5-27 09:16
你想PWM怎么控制?PWM控制什么?

用单片机的IO口输出PWM波,来模拟步进电机的步序,来控制电机啊!

jufr12315 发表于 2016-5-27 09:45:06

zengan007 发表于 2016-5-27 09:19
用单片机的IO口输出PWM波,来模拟步进电机的步序,来控制电机啊!

PWM波人家用来做细分的。
方波控制输出电机旋转时序就可以了啊

sbusr 发表于 2016-5-27 09:55:44

真的不在乎时间成本吗?用8841,你得学习很多步进电机电流控制的知识,还要验证稳定性。换成直接控制dir和step的,只控制速度和位置就行了。

zengan007 发表于 2016-5-27 10:01:54

sbusr 发表于 2016-5-27 09:55
真的不在乎时间成本吗?用8841,你得学习很多步进电机电流控制的知识,还要验证稳定性。换成直接控制dir和s ...

领导看到别人可以用8841做出来,所以。。。
唉 我也是无力啊

zengan007 发表于 2016-5-27 10:05:02

jufr12315 发表于 2016-5-27 09:45
PWM波人家用来做细分的。
方波控制输出电机旋转时序就可以了啊

方波控制输出电机时序?你的意思是控制时序是不能用PWM波的,还是直接用最简单的拉低拉高去模拟他的时序?

xiaowu191 发表于 2016-5-27 11:02:23

zengan007 发表于 2016-5-27 09:18
这里是不是写错了?电机不是完成一个步序(A+B+,A-B+,A-B-,A+B-)才走一个步距角么? ...

文章里面写的是对的;
走完4步已经走了一个齿了,通常电机是50齿;

banyan_city 发表于 2016-5-27 11:11:00

楼主试试这个
      4相8拍工作方式:
      正转绕组的通电顺序为A→AB→B→BC→C→CD→D→DA
      反转绕组的通电顺序为A→DA→D→DC→C→CB→B→BA

jufr12315 发表于 2016-5-27 11:11:29

zengan007 发表于 2016-5-27 10:05
方波控制输出电机时序?你的意思是控制时序是不能用PWM波的,还是直接用最简单的拉低拉高去模拟他的时序 ...

去看看51是怎么控制步进电机的。

zengan007 发表于 2016-5-27 11:25:17

jufr12315 发表于 2016-5-27 11:11
去看看51是怎么控制步进电机的。

        51控制一小步是这样操作的,我用STM32这样做电机也可以转!但是别人说可以用PWM控制,我就不懂了
        GPIO_SetBits(GPIOA,GPIO_Pin_2);
        GPIO_SetBits(GPIOA,GPIO_Pin_0);       
        GPIO_ResetBits(GPIOA,GPIO_Pin_3);
        GPIO_ResetBits(GPIOA,GPIO_Pin_1);               
        delay_ms(1);
        GPIO_SetBits(GPIOA,GPIO_Pin_0);
        GPIO_SetBits(GPIOA,GPIO_Pin_3);       
        GPIO_ResetBits(GPIOA,GPIO_Pin_2);
        GPIO_ResetBits(GPIOA,GPIO_Pin_1);               
        delay_ms(1);                                       
        GPIO_SetBits(GPIOA,GPIO_Pin_3);
        GPIO_SetBits(GPIOA,GPIO_Pin_1);       
        GPIO_ResetBits(GPIOA,GPIO_Pin_2);
        GPIO_ResetBits(GPIOA,GPIO_Pin_0);               
        delay_ms(1);                       
        GPIO_SetBits(GPIOA,GPIO_Pin_2);
        GPIO_SetBits(GPIOA,GPIO_Pin_1);       
        GPIO_ResetBits(GPIOA,GPIO_Pin_0);
        GPIO_ResetBits(GPIOA,GPIO_Pin_3);               
        delay_ms(1);

zengan007 发表于 2016-5-27 11:25:52

banyan_city 发表于 2016-5-27 11:11
楼主试试这个
      4相8拍工作方式:
      正转绕组的通电顺序为A→AB→B→BC→C→CD→D→DA


步序是对的,我用IO口一个一个模拟是可以正反转的

jufr12315 发表于 2016-5-27 11:36:43

zengan007 发表于 2016-5-27 11:25
51控制一小步是这样操作的,我用STM32这样做电机也可以转!但是别人说可以用PWM控制,我就不懂了
        GPIO_ ...

看你要什么效果。电机驱动是怎么样的。

zengan007 发表于 2016-5-27 14:22:56

jufr12315 发表于 2016-5-27 11:36
看你要什么效果。电机驱动是怎么样的。

控制39式两相四线电机精准旋转啊

jufr12315 发表于 2016-5-27 15:13:43

zengan007 发表于 2016-5-27 14:22
控制39式两相四线电机精准旋转啊

{:sweat:} 你用了驱动器没?看你程序需要写步进电机的换相程序,应该是没有用上驱动器。
就按你没接驱动器的做,单片机每次给一相或者两相(看你程序应该是两相)通电,延时一段时间,再换相。
这样就能转了,延时时间短,频率高了,速度就快了。

error_dan 发表于 2016-5-27 17:12:18

zengan007 发表于 2016-5-27 08:32
大哥,是驱动器还是控制器呢?我用了DRV8841,是控制器还是驱动器?

你都知道用的DRV8841,随手一搜不就知道咋用了么。。。
顺便,你这个坑比较大,非常大。
要求不高的话,直接拿整步控制去做吧,不要折腾了。以你能问出这样的问题,什么SPWM离你还远着呢。。。

zwcled 发表于 2016-5-27 18:14:21

学习中,高科技

wind2100 发表于 2016-5-27 19:31:43

zengan007 发表于 2016-5-27 08:51
大哥,再细说一点,我用那个步序控制,电机可以正转反转呢。换到单片机PWM就不懂了...

关键词懂了,自己BING吧“步进电机细分”
主要原理 就是改变二个相之间的电流来改变磁场合力,形成旋转的磁场。

zengan007 发表于 2016-5-27 19:49:53

jufr12315 发表于 2016-5-27 15:13
你用了驱动器没?看你程序需要写步进电机的换相程序,应该是没有用上驱动器。
就按你没接驱动 ...

是啊,用了DEV8841,数据手册上写的是驱动器。。。实际上貌似不是。。。

zengan007 发表于 2016-5-27 19:55:03

error_dan 发表于 2016-5-27 17:12
你都知道用的DRV8841,随手一搜不就知道咋用了么。。。
顺便,你这个坑比较大,非常大。
要求不高的话, ...

{:sweat:} 大哥,刚接触步进电机才2,3天,以前也没有接触过,确实有很多不懂的东西。但是为了工作,没办法啊,硬着头皮也要试试看。。。

kinsno 发表于 2016-5-27 20:01:19

zengan007 发表于 2016-5-27 19:55
大哥,刚接触步进电机才2,3天,以前也没有接触过,确实有很多不懂的东西。但是为了工作,没办 ...

我也是刚有这个念头,也刚开始,还没有入门呢?一样迷糊呢;
我比你好的是,我是属于业余兴趣,有时间了搞搞;没有你这样有一定压力;一同前进吧。。。

zengan007 发表于 2016-5-27 20:11:33

kinsno 发表于 2016-5-27 20:01
我也是刚有这个念头,也刚开始,还没有入门呢?一样迷糊呢;
我比你好的是,我是属于业余兴趣,有时间了 ...

唉,估计下周还没有搞出一点东西来我就要滚蛋了,哈哈!

error_dan 发表于 2016-5-27 20:51:04

zengan007 发表于 2016-5-27 19:55
大哥,刚接触步进电机才2,3天,以前也没有接触过,确实有很多不懂的东西。但是为了工作,没办 ...

2,3天是不够的,两三个月也许能入个门,两三年以后你就理解LS这些老家伙们为啥对你这个问题不理解了。
从步进电机原理和H桥驱动开始吧。
眼下先通电转起来就好,也别想着PWM了,先用IO把时序做出来让电机转起来。

顺便你用的这个“驱动芯片”,真的就只是驱动芯片,在操作方式上和uln2003一样的,无非是淘宝上几毛钱一个uln2003大多数配四相五线步进电机,你的是两相四线。
人家四组线圈有一端全部并联在一起,另一端拉高或者拉低实现给电和不给电.
你这个如果硬件没错的话,应该是两组线圈分别接在H桥的两个输出端,你要自己控制H桥的通断和方向,这个拿IO就能搞定了,微观的IO操作没错的话,连续起来就能看见电机转了。

zengan007 发表于 2016-5-27 22:08:32

error_dan 发表于 2016-5-27 20:51
2,3天是不够的,两三个月也许能入个门,两三年以后你就理解LS这些老家伙们为啥对你这个问题不理解了。
从 ...

嗯嗯,多谢大哥细心回复!唉,步进电机的水很深,还得努力啊!

jufr12315 发表于 2016-5-27 23:18:13

zengan007 发表于 2016-5-27 19:49
是啊,用了DEV8841,数据手册上写的是驱动器。。。实际上貌似不是。。。

{:sweat:} 先去了解步进电机吧

winsunhy 发表于 2016-5-28 08:55:31

推荐楼主看看microchip的应用笔记AN1302,看懂了就明白了

jiulong855@.163 发表于 2016-5-28 09:08:51

这个都是学生做实验或是刚入门的做实验用的控制方式,实际项目这么做有点不合适,性能太差
页: [1]
查看完整版本: 步进电机PWM控制!菜鸟睡不着,好纠结!