步进电机PWM控制!菜鸟睡不着,好纠结!
我用的是2相4线电机,ABCD接单片机4个IO口(我接的是PA0,1,2,3)可以输出PWM波形,PA口输出接8841。
我看网上人都用PWM控制输入口,而ABCD的波形在一个步距角里貌似不是完整的PWM波形啊,如图A波形。如果用单片机的PWM口输出的话那与电机的步序对不上啊,还是我方式不对呢?不知道哪里理解错误了,好纠结! IO直接驱动步进电机的线圈确实要按照步进电机的时序,但是大部分情况下,很少这么干,都会加一个驱动器,此时仅需要输出脉冲和方向信号。
拿PWM直接驱动步进电机线圈的,一般都是做细分控制。 参考TB6560的官方PDF有你想要的 你对照那个电流矢量图去看,明白了然后就容易了
error_dan 发表于 2016-5-26 22:50
IO直接驱动步进电机的线圈确实要按照步进电机的时序,但是大部分情况下,很少这么干,都会加一个驱动器,此 ...
大哥,是驱动器还是控制器呢?我用了DRV8841,是控制器还是驱动器? 以前玩过,用单片机驱动三极管还有MOS管来驱动电机,双细分或者不分。后面到真正使用时发现自制没有意义,直接购买现在的6560才25块,不值得研究,只有最终结果体现才是王道。。 楼主 是磁场旋转 还没理解到 光看波形没用的 flash3g 发表于 2016-5-27 05:31
参考TB6560的官方PDF有你想要的
嗯,我去看看。谢谢大哥 xiaowu191 发表于 2016-5-27 08:30
你对照那个电流矢量图去看,明白了然后就容易了
OK,谢谢大哥 kerrwang1982 发表于 2016-5-27 08:40
以前玩过,用单片机驱动三极管还有MOS管来驱动电机,双细分或者不分。后面到真正使用时发现自制没有意义, ...
{:sad:} 我也想搞个驱动器玩玩,但是方案改不了啊!{:cry:} wind2100 发表于 2016-5-27 08:47
楼主 是磁场旋转 还没理解到 光看波形没用的
大哥,再细说一点,我用那个步序控制,电机可以正转反转呢。换到单片机PWM就不懂了{:cry:} 你想PWM怎么控制?PWM控制什么? xiaowu191 发表于 2016-5-27 08:30
你对照那个电流矢量图去看,明白了然后就容易了
这里是不是写错了?电机不是完成一个步序(A+B+,A-B+,A-B-,A+B-)才走一个步距角么? jufr12315 发表于 2016-5-27 09:16
你想PWM怎么控制?PWM控制什么?
用单片机的IO口输出PWM波,来模拟步进电机的步序,来控制电机啊! zengan007 发表于 2016-5-27 09:19
用单片机的IO口输出PWM波,来模拟步进电机的步序,来控制电机啊!
PWM波人家用来做细分的。
方波控制输出电机旋转时序就可以了啊 真的不在乎时间成本吗?用8841,你得学习很多步进电机电流控制的知识,还要验证稳定性。换成直接控制dir和step的,只控制速度和位置就行了。 sbusr 发表于 2016-5-27 09:55
真的不在乎时间成本吗?用8841,你得学习很多步进电机电流控制的知识,还要验证稳定性。换成直接控制dir和s ...
领导看到别人可以用8841做出来,所以。。。
唉 我也是无力啊 jufr12315 发表于 2016-5-27 09:45
PWM波人家用来做细分的。
方波控制输出电机旋转时序就可以了啊
方波控制输出电机时序?你的意思是控制时序是不能用PWM波的,还是直接用最简单的拉低拉高去模拟他的时序? zengan007 发表于 2016-5-27 09:18
这里是不是写错了?电机不是完成一个步序(A+B+,A-B+,A-B-,A+B-)才走一个步距角么? ...
文章里面写的是对的;
走完4步已经走了一个齿了,通常电机是50齿; 楼主试试这个
4相8拍工作方式:
正转绕组的通电顺序为A→AB→B→BC→C→CD→D→DA
反转绕组的通电顺序为A→DA→D→DC→C→CB→B→BA zengan007 发表于 2016-5-27 10:05
方波控制输出电机时序?你的意思是控制时序是不能用PWM波的,还是直接用最简单的拉低拉高去模拟他的时序 ...
去看看51是怎么控制步进电机的。
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); banyan_city 发表于 2016-5-27 11:11
楼主试试这个
4相8拍工作方式:
正转绕组的通电顺序为A→AB→B→BC→C→CD→D→DA
步序是对的,我用IO口一个一个模拟是可以正反转的 zengan007 发表于 2016-5-27 11:25
51控制一小步是这样操作的,我用STM32这样做电机也可以转!但是别人说可以用PWM控制,我就不懂了
GPIO_ ...
看你要什么效果。电机驱动是怎么样的。 jufr12315 发表于 2016-5-27 11:36
看你要什么效果。电机驱动是怎么样的。
控制39式两相四线电机精准旋转啊 zengan007 发表于 2016-5-27 14:22
控制39式两相四线电机精准旋转啊
{:sweat:} 你用了驱动器没?看你程序需要写步进电机的换相程序,应该是没有用上驱动器。
就按你没接驱动器的做,单片机每次给一相或者两相(看你程序应该是两相)通电,延时一段时间,再换相。
这样就能转了,延时时间短,频率高了,速度就快了。 zengan007 发表于 2016-5-27 08:32
大哥,是驱动器还是控制器呢?我用了DRV8841,是控制器还是驱动器?
你都知道用的DRV8841,随手一搜不就知道咋用了么。。。
顺便,你这个坑比较大,非常大。
要求不高的话,直接拿整步控制去做吧,不要折腾了。以你能问出这样的问题,什么SPWM离你还远着呢。。。 学习中,高科技 zengan007 发表于 2016-5-27 08:51
大哥,再细说一点,我用那个步序控制,电机可以正转反转呢。换到单片机PWM就不懂了...
关键词懂了,自己BING吧“步进电机细分”
主要原理 就是改变二个相之间的电流来改变磁场合力,形成旋转的磁场。 jufr12315 发表于 2016-5-27 15:13
你用了驱动器没?看你程序需要写步进电机的换相程序,应该是没有用上驱动器。
就按你没接驱动 ...
是啊,用了DEV8841,数据手册上写的是驱动器。。。实际上貌似不是。。。 error_dan 发表于 2016-5-27 17:12
你都知道用的DRV8841,随手一搜不就知道咋用了么。。。
顺便,你这个坑比较大,非常大。
要求不高的话, ...
{:sweat:} 大哥,刚接触步进电机才2,3天,以前也没有接触过,确实有很多不懂的东西。但是为了工作,没办法啊,硬着头皮也要试试看。。。 zengan007 发表于 2016-5-27 19:55
大哥,刚接触步进电机才2,3天,以前也没有接触过,确实有很多不懂的东西。但是为了工作,没办 ...
我也是刚有这个念头,也刚开始,还没有入门呢?一样迷糊呢;
我比你好的是,我是属于业余兴趣,有时间了搞搞;没有你这样有一定压力;一同前进吧。。。 kinsno 发表于 2016-5-27 20:01
我也是刚有这个念头,也刚开始,还没有入门呢?一样迷糊呢;
我比你好的是,我是属于业余兴趣,有时间了 ...
唉,估计下周还没有搞出一点东西来我就要滚蛋了,哈哈! zengan007 发表于 2016-5-27 19:55
大哥,刚接触步进电机才2,3天,以前也没有接触过,确实有很多不懂的东西。但是为了工作,没办 ...
2,3天是不够的,两三个月也许能入个门,两三年以后你就理解LS这些老家伙们为啥对你这个问题不理解了。
从步进电机原理和H桥驱动开始吧。
眼下先通电转起来就好,也别想着PWM了,先用IO把时序做出来让电机转起来。
顺便你用的这个“驱动芯片”,真的就只是驱动芯片,在操作方式上和uln2003一样的,无非是淘宝上几毛钱一个uln2003大多数配四相五线步进电机,你的是两相四线。
人家四组线圈有一端全部并联在一起,另一端拉高或者拉低实现给电和不给电.
你这个如果硬件没错的话,应该是两组线圈分别接在H桥的两个输出端,你要自己控制H桥的通断和方向,这个拿IO就能搞定了,微观的IO操作没错的话,连续起来就能看见电机转了。 error_dan 发表于 2016-5-27 20:51
2,3天是不够的,两三个月也许能入个门,两三年以后你就理解LS这些老家伙们为啥对你这个问题不理解了。
从 ...
嗯嗯,多谢大哥细心回复!唉,步进电机的水很深,还得努力啊! zengan007 发表于 2016-5-27 19:49
是啊,用了DEV8841,数据手册上写的是驱动器。。。实际上貌似不是。。。
{:sweat:} 先去了解步进电机吧 推荐楼主看看microchip的应用笔记AN1302,看懂了就明白了 这个都是学生做实验或是刚入门的做实验用的控制方式,实际项目这么做有点不合适,性能太差
页:
[1]