电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
有51单片机连a4988的例程吗?
已解决
73482
个问题
已帮助
5993
位优秀工程师
有51单片机连a4988的例程吗?
STM64
2018-10-12
浏览量:1715
有51单片机连a4988的例程吗?
显示全部
单片机
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
Chauncey
EN脚置零,DIR脚控制方向,给STEP送脉冲,100Hz左右,就可以了
具体方法其实和arduino一样的
发布于
2018-10-20
举报
评论 0
0
0
其他答案
数量:
14
wo4fisher
参考arduino就可以,一个引脚设置方向,一个引脚用来输出高速脉冲,剩下的细分等可以不接,再接电源和步进电机就可以了。
发布于
2018-10-12
举报
评论 0
0
0
yhj416606438
可以参考https://download.csdn.net/download/teshu2010/9103049
发布于
2018-10-12
举报
评论 0
0
0
明有几时有
这个步进电机要用一个驱动芯片才可以驱动的,单片机无法使用IO口驱动
发布于
2018-10-12
举报
评论 0
0
0
FEItwo
可以去参考下,A4988步进电机单片机驱动程序 ,51单片机A4988驱动源码,步进电机驱动A4988步进电机驱动程序编写 ,等资料
发布于
2018-10-14
举报
评论 0
0
0
megar
这个就是一个普通的步进电机,参考51控制步进电机程序,或者Arduino有现成的可以参考下https://blog.csdn.net/ling3ye/article/details/47001251
发布于
2018-10-14
举报
评论 0
0
0
Kylo
这种就上一个普通的电机驱动,一个引脚设置方向,一个发送PWM进行控制
发布于
2018-10-20
举报
评论 0
0
0
chen0000009
A4988只需要两个脚,一个选择方向的,一个输出脉冲的,脉冲那个,在51上面可以通过定时器中断实现
发布于
2018-10-21
举报
评论 0
0
0
Reuben
这个芯片通过一个引脚控制方向,一个发送脉冲就可以驱动
发布于
2018-10-23
举报
评论 0
0
0
Harriet
这个用PWM去控制你的输出引脚,然后再控制你的电机驱动就可以
发布于
2018-10-30
举报
评论 0
0
0
drepa
a4988是通过pwm控制的,51可以发出pwm波来控制这个器件。
发布于
2018-10-31
举报
评论 0
0
0
我对面的武器
#include <reg52.h>
#include <intrins.h>
#define FOSC 11059200L //晶振设置,默认使用11.0592M Hz
//#define FOSC 12000000L //晶振设置,使用12M Hz
//#define FOSC 24000000L //晶振设置,使用24M Hz
#define TIME_MS 1 //设定定时时间 ms 在11.0592M晶振下,不易超过60ms
//IO接口定义
sbit pulse = P1^0;//脉冲信号
sbit Dir = P1^1; //正反转
sbit EN = P1^2;
sbit MS1 = P1^3;
sbit MS2 = P1^4;
sbit MS3 = P1^5;
sbit KEY1 = P2^0; //启动
sbit KEY2 = P2^1; //停止
sbit KEY3 = P2^2; //正转
sbit KEY4 = P2^3; //反转
//全局变量定义
unsigned char count=0;
/*******************************************************************************
* 函 数 名 :Delayms
* 函数功能 :实现 ms级的延时
* 输 入 :ms
* 输 出 :无
*******************************************************************************/
void Delayms(unsigned int ms)
{
unsigned int ij;
for(i=0;i<ms;i++)
#if FOSC == 11059200L
for(j=0;j<114;j++);
#elif FOSC == 12000000L
for(j=0;j<123;j++);
#elif FOSC == 24000000L
for(j=0;j<249;j++);
#else
for(j=0;j<114;j++);
#endif
}
/*******************************************************************************
* 函 数 名 :Timer0Init
* 函数功能 :定时器0初始化
* 输 入 :无
* 输 出 :无
*******************************************************************************/
void Timer0Init()
{
TMOD=0x01; //设置定时器0工作方式为1
TH0=(65536-FOSC/12/1000*TIME_MS)/256;
TL0=(65536-FOSC/12/1000*TIME_MS)%256;
ET0=1; //开启定时器0中断
// TR0=1; //开启定时器
EA=1; //打开总中断
}
/*******************************************************************************
* 函 数 名 :main
* 函数功能 :主函数
* 输 入 :无
* 输 出 :无
*******************************************************************************/
void main()
{
Timer0Init();
EN=0;
MS1=0;
MS2=0;
MS3=0;
while(1)
{
if(KEY1==0) //判断是否按下键盘
{
Delayms(10); //延时软件去干扰
if(KEY1==0) //确认按键按下
{
TR0=1;
}
while(KEY1==0);//按键锁定每按一次count只加1.
}
if(KEY2==0) //判断是否按下键盘
{
Delayms(10); //延时软件去干扰
if(KEY2==0) //确认按键按下
{
TR0=0;
}
while(KEY2==0);//按键锁定每按一次count只加1.
}
if(KEY3==0) //判断是否按下键盘
{
Delayms(10); //延时软件去干扰
if(KEY3==0) //确认按键按下
{
Dir=0;
}
while(KEY3==0);//按键锁定每按一次count只加1.
}
if(KEY4==0) //判断是否按下键盘
{
Delayms(10); //延时软件去干扰
if(KEY4==0) //确认按键按下
{
Dir=1;
}
while(KEY4==0);//按键锁定每按一次count只加1.
}
}
}
发布于
2018-11-06
举报
评论 0
0
0
厉害企鹅
这个芯片的驱动可以看看https://blog.csdn.net/asszz/article/details/79399681
发布于
2018-11-06
举报
评论 0
0
0
序缘阿斌
一般就是一个引脚控制方向,一个引脚用脉冲去控制运动
发布于
2018-11-12
举报
评论 0
0
0
凉城小呆呆
这个可以参考雷赛的步进电机驱动器控制,方式是一样的
发布于
2018-11-15
举报
评论 0
0
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
有51单片机连a4988的例程吗?
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: