OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4251|回复: 8

急!!!:ULN2003驱动芯片连接24BYJ-48步进电机,电机一直抖动不转

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2018-4-28
在线时间
3 小时
发表于 2018-4-28 14:54:02 | 显示全部楼层 |阅读模式
2金钱
我用的是STM32MINI版的板子,程序如下所示,不知道为什么会这样,弄了好几天也不知道怎么回事。
求大神帮忙看下。板子和电机,芯片的接线确定都没错误

#include "led.h"
#include "delay.h"
#include "sys.h"


// IN4: PC9   d
// IN3: PC8   c
// IN2: PC7   b
// IN1: PC6   a

uint16_t phasecw[4] ={0x0200,0x0100,0x0080,0x0040};// D-C-B-A   
uint16_t phaseccw[4]={0x0040,0x0080,0x0100,0x0200};// A-B-C-D


void Delay_xms(int x)
{
int i,j;
for(i=0;i<j;i++)
  for(j=0;j<100;j++);
}

void Moto_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_ResetBits(GPIOC,GPIO_Pin_6 | GPIO_Pin_7 |GPIO_Pin_8 |GPIO_Pin_9 );
}

void Motorcw(void)  
{  
    uint8_t i;  

    for(i=0;i<4;i++)  
    {  
        GPIO_Write(GPIOC,phasecw);  
        Delay_xms(50);  
    }  
}

void Motorccw(void)  
{  
    uint8_t i;  
    for(i=0;i<4;i++)  
    {  
        GPIO_Write(GPIOC,phaseccw);  
        Delay_xms(50);  
    }  
}

void MotorStop(void)  
{  
    GPIO_Write(GPIOC,0x0000);  
}

int main()
{
unsigned int i;
Moto_Init();

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2018-4-28
在线时间
3 小时
 楼主| 发表于 2018-4-28 14:54:43 | 显示全部楼层
LED_Init();
       
   while(1)
  {
   for(i=0;i<500;i++)
   {
     Motorccw();
   }
  }
}   
接着上面的
回复

使用道具 举报

19

主题

246

帖子

0

精华

高级会员

Rank: 4

积分
608
金钱
608
注册时间
2017-9-21
在线时间
171 小时
发表于 2018-4-28 15:29:38 | 显示全部楼层
GPIO_Write(GPIOC,phaseccw);   X
GPIO_Write(GPIOC,phaseccw);   X
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2018-4-28 15:52:03 | 显示全部楼层
不要用单片机,直接给2003控制端用电平控制,看能不能正常控制。排除硬件电路问题后,在检查软件。
回复

使用道具 举报

2

主题

123

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1470
金钱
1470
注册时间
2014-4-8
在线时间
172 小时
发表于 2018-4-28 15:56:57 | 显示全部楼层
先确保输出波形没有问题,然后
uint16_t phasecw[8] ={0x0200,0x0300,0x0100,0x0180,0x0080,0x0480,0x0040,0x0240};// D-DC-C-CB-B-BA-A-AD  
这样驱动
我曾遇到按你的驱动方法,步进电机没劲,力量小,改变后就好了
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2018-4-28
在线时间
3 小时
 楼主| 发表于 2018-4-29 10:25:52 | 显示全部楼层
jackielau 发表于 2018-4-28 15:56
先确保输出波形没有问题,然后
uint16_t phasecw[8] ={0x0200,0x0300,0x0100,0x0180,0x0080,0x0480,0x0040 ...

能给个完整的程序么,我是小白,对这个东西不是很清楚。
回复

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2018-4-27
在线时间
7 小时
发表于 2018-5-15 21:59:05 | 显示全部楼层
请问一下楼主搞出来了么
回复

使用道具 举报

0

主题

18

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2023-3-23
在线时间
12 小时
发表于 2023-11-12 21:45:03 | 显示全部楼层
学习学习
回复

使用道具 举报

28

主题

360

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1027
金钱
1027
注册时间
2021-2-4
在线时间
146 小时
发表于 2023-11-13 15:47:03 | 显示全部楼层
这现象怎么看都是线序错了或者启动速度太快
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 19:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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