野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14387|回复: 12

两相四线步进电机

[复制链接]
发表于 2016-12-18 15:57:48 | 显示全部楼层 |阅读模式
用L298N驱动一个两相四线步进电机,按照网上提供的时序给信号。可是步进电机不转,用手拧步进电机,明显感觉有扭矩。把延迟调高之后用手可以感觉到步进电机是在正向一步和负向一步来回动。不能完成循环转圈。(小白一个,望大神指教)主程序: int main(void){
  MOTOR_GPIO_Config();
          while(1)
           {
            
                         step1();
                         delay_us(10000);
                          step2();
                         delay_us(10000);
                         step3();
                         delay_us(10000);
                          step4();
                         delay_us(10000);
            
           }
}

程序:void step1(void)                {
                        GPIO_SetBits(GPIOA,MOTOR_GPIO_PinA);
                        GPIO_ResetBits(GPIOA,MOTOR_GPIO_PinA_);
                        GPIO_SetBits(GPIOA,MOTOR_GPIO_PinB);
                        GPIO_ResetBits(GPIOA,MOTOR_GPIO_PinB_);
                }
                  
                void step2(void)
                {
                        GPIO_SetBits(GPIOA,MOTOR_GPIO_PinA_);
                        GPIO_ResetBits(GPIOA,MOTOR_GPIO_PinA);
                        GPIO_SetBits(GPIOA,MOTOR_GPIO_PinB);//设置A口6引脚
                        GPIO_ResetBits(GPIOA,MOTOR_GPIO_PinB_);//设置A口7引脚
                }
               
                void step3(void)
                {
                        GPIO_SetBits(GPIOA,MOTOR_GPIO_PinA_);//设置A口4引脚
                        GPIO_ResetBits(GPIOA,MOTOR_GPIO_PinA);//设置A口5引脚
                        GPIO_SetBits(GPIOA,MOTOR_GPIO_PinB_);//设置A口6引脚
                        GPIO_ResetBits(GPIOA,MOTOR_GPIO_PinB);//设置A口7引脚
                }
               
                void step4(void)
                {
                        GPIO_SetBits(GPIOA,MOTOR_GPIO_PinA);//设置A口4引脚
                        GPIO_ResetBits(GPIOA,MOTOR_GPIO_PinA_);//设置A口5引脚
                        GPIO_SetBits(GPIOA,MOTOR_GPIO_PinB_);//设置A口6引脚
                        GPIO_ResetBits(GPIOA,MOTOR_GPIO_PinB);//设置A口7引脚
                }





回复

使用道具 举报

 楼主| 发表于 2016-12-18 15:59:54 | 显示全部楼层
下面这个是在网上找的时序:
a~和b~表示反向电流。 ab-a~b- a~b~ - ab~ 为一个转向
回复 支持 反对

使用道具 举报

发表于 2016-12-19 09:35:23 | 显示全部楼层
可能是接线错了,导致供给信号不对
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-19 23:24:32 | 显示全部楼层
flyleaf 发表于 2016-12-19 09:35
可能是接线错了,导致供给信号不对

你好。线的问题仔细检查了,都是一一对应着的。然后频率也高到低、试过了。还是不转,用手拧就会嗡嗡响。
回复 支持 反对

使用道具 举报

发表于 2016-12-25 13:59:27 | 显示全部楼层
会不会方向引脚和脉冲引脚搞错了
回复 支持 反对

使用道具 举报

发表于 2017-1-9 20:13:59 | 显示全部楼层
void ac()
{
        switch(step)
                                {
                                        case 0 : AP(ON);AN(OFF);BP(OFF);BN(OFF);break;//A+
                                        case 1 : AP(ON);AN(OFF);BP(ON);BN(OFF);break;        //A+B+
                                        case 2 : AP(OFF);AN(OFF);BP(ON);BN(OFF);break;//B+
                                        case 3 : AP(OFF);AN(ON);BP(ON);BN(OFF);break;        //A-B+
                                        case 4 : AP(OFF);AN(ON);BP(OFF);BN(OFF);break;//A-
                                        case 5 : AP(OFF);AN(ON);BP(OFF);BN(ON);break;//A-B-
                                        case 6 : AP(OFF);AN(OFF);BP(OFF);BN(ON);break;//B-
                                        case 7 : AP(ON);AN(OFF);BP(OFF);BN(ON);break;//A+B-
                                        default : AP(OFF);AN(OFF);BP(OFF);BN(OFF);break;//A0B0
                                }
                                step++;
                                if(step>7){step=0;}
                                Delay_ms(cycletime);
}
回复 支持 反对

使用道具 举报

发表于 2017-1-9 20:15:25 | 显示全部楼层
以前用的,你试试好不好用
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-16 17:06:55 | 显示全部楼层
KXMYT 发表于 2016-12-25 13:59
会不会方向引脚和脉冲引脚搞错了

你好,这个检查过了。接线等没有错误,别人说是频率不对,可是仍旧没有调出来
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-16 17:07:52 | 显示全部楼层
cupid1988li 发表于 2017-1-9 20:15
以前用的,你试试好不好用

谢谢,最近没来看贴,没看到回复。
回复 支持 反对

使用道具 举报

发表于 2017-1-16 22:09:13 | 显示全部楼层
囚徒 发表于 2017-1-16 17:07
谢谢,最近没来看贴,没看到回复。

前几天我又试了一下,好使,延时时间我的是750US--2ms,再小就转不动了,大了就一卡一卡的
回复 支持 反对

使用道具 举报

发表于 2017-3-3 13:36:08 | 显示全部楼层
他是双H桥驱动的,只能4拍工作,我也按照那个时序调了,也不能工作。八拍工作方式要换驱动IC了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-9 18:30:01 | 显示全部楼层
wmaxwell 发表于 2017-3-3 13:36
他是双H桥驱动的,只能4拍工作,我也按照那个时序调了,也不能工作。八拍工作方式要换驱动IC了

是,双桥有点难调,我直接用了步进电机驱动,调节频率就行,比较好调一点
回复 支持 反对

使用道具 举报

发表于 2017-4-12 08:27:15 | 显示全部楼层
L298N之前用过,驱动步进坑死人,直接专门的驱动芯片,便宜好用又省心
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 15:41 , Processed in 0.039039 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表