标题: 怎样用51单片机接两相步进电机驱动器来控制步进电机? [打印本页]
作者: 违规用户名32492 时间: 2017-8-3 13:01
标题: 怎样用51单片机接两相步进电机驱动器来控制步进电机?
怎样用51单片机接两相步进电机驱动器来控制步进电机?
我现在是ENA+ DIR+ PUL+ 共阳接+5v ENA- DIR- PUL-每个接一个单片机IO口就行吗 然后这三个口分别怎么编程控制呢
作者: suxin1412 时间: 2017-8-3 20:47
接的没问题
PUL端口给步进电机脉冲,一个脉冲能让步进电机转过一个步进角
DIR端口给高低电平,电平不一样使电机转动方向不一样
作者: long1990 时间: 2017-8-4 09:54
我也是类似的接法,也想学一下怎么编程控制。
作者: long1990 时间: 2017-8-4 10:05
我没连接ENA,现在只会简单编写了一下,能转动起来。
代码:
#include "reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit motoA=P1^1;
sbit motoB=P1^2;
void delay(u16 i)
{
while(i--);
}
void main()
{
while(1)
{
motoA=0;
delay(10);
motoA=1;
delay(10);
motoB=1;
}
}
作者: long1990 时间: 2017-8-4 10:30
我用的是89c52单片机,没接ENA,简单编了一下,能在一个方向上转动。
代码:
#include "reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit motoA=P1^1;
sbit motoB=P1^2;
void delay(u16 i)
{
while(i--);
}
void main()
{
while(1)
{
motoA=0;
delay(10);
motoA=1;
delay(10);
motoB=1;
}
}
作者: 违规用户名32492 时间: 2017-8-6 12:51
嗯 我发现确实不用接ENA 不知道为什么 我用的57 脉冲最长延时1ms,再短它就好像反应不过来了,也有点发热
作者: 违规用户名32492 时间: 2017-8-6 12:52
ENA呢 我发现ENA不用接就行 这是为啥呢 为什么还要有个这个接口呢
作者: 流觞曲水 时间: 2018-5-24 23:42
楼主还在吗?请问DIR- 和 DIR+分别接什么?51单片机的两个针脚吗?
作者: 流觞曲水 时间: 2018-5-24 23:48
请问 motoA 和 motoB 分别是DIR 和 PUL 吗?
作者: 流觞曲水 时间: 2018-5-26 09:37
这个是脱机选项,接和不接不影响电机运动。接了就多一个功能。
作者: zl2168 时间: 2018-5-26 18:41
本帖最后由 zl2168 于 2018-5-26 18:43 编辑
实例99 驱动二相步进电机
先Proteus仿真一下,确认有效。
以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil C和Proteus》清华大学出版社ISBN 978-7-302-41682-1,内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行。书中电路和程序设计有详细说明,程序语句条条有注解。
作者: LWSZ 时间: 2018-8-21 21:48
也想学一下怎么编程控制
作者: izumisakai1 时间: 2018-9-7 15:49
请问你的公共正端接的5V 是单片机的IO接口么? 如果是的话 任意一个IO都行么
作者: izumisakai1 时间: 2018-9-7 15:50
请问楼主的公共正端接的是单片机的IO接口么 如果是的话 任意个IO口都行么
作者: 111252 时间: 2018-9-16 09:57
long1990 发表于 2017-8-4 10:05
我没连接ENA,现在只会简单编写了一下,能转动起来。
代码:
#include "reg52.h"
可以看一下线路是怎么连接的吗?
作者: 顾佳健 时间: 2019-6-14 17:27
你会了吗
作者: suncat0504 时间: 2019-6-15 18:31
我发一个实际测试过的,使用的是stc89C52,驱动使用的是uln2003。看程序代码,应该能看懂的。
#include <reg52.h>
unsigned int code F_Rotation[4]={0x01,0x02,0x04,0x08};//正转表格
unsigned int code B_Rotation[4]={0x08,0x04,0x02,0x01};//反转表格
void Delay(unsigned int i)//延时
{
while(i--);
}
main()
{
unsigned int i;
unsigned int count;
count = 0;
while(1)
{
for(count=0;count<2400;count++) {
for(i=0;i<4;i++) //4相
{
P1=F_Rotation[i]; //输出对应的相 可以自行换成反转表格
Delay(200); //改变这个参数可以调整电机转速
}
}
Delay(20000);
for(count=0;count<2400;count++) {
for(i=0;i<4;i++) //4相
{
P1=B_Rotation[i]; //输出对应的相 可以自行换成反转表格
Delay(200); //改变这个参数可以调整电机转速
}
}
Delay(20000);
}
}
作者: 3567 时间: 2020-5-18 22:52
这不是4相的m
作者: 飞天芭蕾 时间: 2021-11-10 09:37
请问这些文件在哪下载呀,想学习学习
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |