OpenEdv-开源电子网

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

步进电机

[复制链接]

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2016-3-15
在线时间
61 小时
发表于 2016-8-6 21:28:07 | 显示全部楼层 |阅读模式
3金钱
大家好,我是个菜鸟,我刚学stm32f407,做了个步进电机程序。stm32f407+uln2003a驱动器,控制28BYJ-48 5V DC步进电机,但是电机不能转动,求教,谢谢!

步进电机调试.rar

7.98 MB, 下载次数: 94

最佳答案

查看完整内容[请看2#楼]

当初ULN2003电压低的问题
搞技术要脚踏实地!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2016-3-15
在线时间
61 小时
 楼主| 发表于 2016-8-6 21:28:08 | 显示全部楼层
当初ULN2003电压低的问题
回复

使用道具 举报

9

主题

507

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3347
金钱
3347
注册时间
2013-4-10
在线时间
333 小时
发表于 2016-8-6 22:15:52 | 显示全部楼层
本帖最后由 likunxue 于 2016-8-6 22:17 编辑

以下程序是玩51时为一个工厂写的,你可以试试
/***************************************************************************************************
函数名:步进电机正反转一步
调  用:MOTOR()
参  数:Mot=0,电机反转一步 ,Mot=1电机正转
返回值:无
结  果:电机坐标 Motor 自动加一或减一,电机走一步
bdata bit Motz=0;         //定义电机标志,初始化设为Y轴电机
***************************************************************************************************/
void MOTOR(void){   //步进电机正反转一步子程序
           code unsigned char MOTOR_DB[]={0x00,0xb0,0x90,0xd0,0x50,0x70,0x60,0xe0,0xa0,0x00};//定义电机输出编码
           code unsigned char MOTOR_DA[]={0x00,0xa0,0xe0,0x60,0x70,0x50,0xd0,0x90,0xb0,0x00};//定义电机输出编码
           unsigned char i,k;
           i=0;      //电机输出编码初值设00
           CBB=30;   //设减小电机电流时间设为30
           if(Mot==1)Mo_data++;
           else{if(Mo_data!=0)Mo_data--;}//如果电机反转,并且当前电机坐标不小于1时,坐标减一
           while(1)
                {
                if(Mot)Motor_t ++;//当前电机输出编码加一指向下一编码
                else Motor_t --;//电机输出编码减一
                if(Motz)i=MOTOR_DA[Motor_t]; //取电机输出编码  (R轴电机)
                else i=MOTOR_DB[Motor_t]; //取电机输出编码 (Y轴电机)
                if(i!=0)break;
                else{
                    if(Mot)Motor_t=0;
                    else Motor_t=9;
                    }
                }
           i=i&0xf8;  //屏蔽低3位,高5位不变
           k=M_data;  //取端口数据
           k&=0x07;   //屏蔽P1口的高5位,低3位不变
           M_data=k|i; //高5位送P1口,P1口的低3位不变
           DELAY(20);
           }

回复

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2016-3-15
在线时间
61 小时
 楼主| 发表于 2017-1-4 17:44:22 | 显示全部楼层
已解决
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 02:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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