A4988驱动模块驱动进电机

A4988是控制双极步进电机的驱动模块,在本文中,我们学习如何使用它控制步进电机。
A4988的逻辑电压范围是:3~5.5V,如果配备较好的散热条件每相最大电流可达2A,在没有配备散热器的情况下,每相连续电流最好控制在1A范围内。
先来看图:


---------------------------------------------------------------------------------------------------

 

从右边自上而下分析

VMOT、GND:
外接电源正负极,用来给步进电机供电的。
(注意:购买时看一下驱动电压参数,电压不要过高,小的步进电机在4-9v,如果选择12v供电,启动启动没多久就会发烫严重)

建议加个电容,起滤波作用,主要是电机启动时瞬时电流很大,保护驱动板免受瞬时电压的冲击 。

2B 2A 1A 1B:
接步进电机的四根线,不清楚顺序的可以问商家。

VDD、GND:
单片机的VCC、GND接到上面。

从左边自上而下分析:
ENABLE:
使能端,低电平工作,高电平则模块关机。

MS1、MS2、MS3:
细分设置,通过单片机IO口控制三个脚的高低电平设置细分,有1,2,4,8,16这5种细分,决定电机运行速度,具体见表1:


RESET:
复位,置0复位。复位后系统将回归到原始A4988 I/O端口控制状态;

SLEEP:
睡眠模式,接低电平则电机断电,高电平则电机上电。

默认高电平,无需从单片机单独引个IO口。

图一中将SLEEP和RESET针脚连接起来,目的是将RESET针脚设置为高电平,以便模块可控。

STEP:
脉冲输入,用于控制电机旋转的步数控制,输入一个方波,电机转动一步。

以1.8°电机,16细分为例,就是(1.8/16)°

说白了就是控制一个I/O口不断的高、低电平切换
 

void step(void)
{	
	 STEP=0;    //脉冲输入
	 Delay(1);   //延时 Delay(1)=1ms
	 STEP=1; 
	 Delay(1);			
}

DIR:
方向控制,低电平正转,高电平反转。


正转代码↓

#include <reg51.h>
/**********************延时函数****************/
void Delay(unsigned int xms)  //延时函数 @12.000MHz Delay(1)=1ms  
{
   unsigned char i, j;
   while(xms--) 
  {
	i = 2;
	j = 239;
	do
	{while (--j);}
	 while (--i);
  }
}
/***********************************************/
sbit DIR=P2^0;       //方向控制,低电平正转,高电平反转
sbit STEP=P2^1;     //脉冲输入,控制高低电平不断变化
sbit ENABLE=P2^5;    //使能端,低电平启动
/***********分配细分方式引脚************/
sbit MS3=P2^2;      
sbit MS2=P2^3;
sbit MS1=P2^4;
#define MS {MS1=0;MS2=1;MS3=0;}    //选择细分方式4,可修改MS1~MS3的值选择细分方式
                                   //选择细分方式看表1
void steep(void)
{	
	 STEP=0;    //脉冲输入
	 Delay(1);   //延时 Delay(1)=1ms
	 STEP=1; 
	 Delay(1);			
}
void UP_dj(void)    //前进
{
		 DIR=0;     //低电平上升
		 step();

}
void DN_dj(void)    //后退
{
		 DIR=1;		//高电平下降
	     step();	
}
void main()         //主函数
{
		MS          //选择细分方式4
	    ENABLE=0;   //使能端,低电平启动
	   while(1)
	{
	   UP_dj();     //正转
	}	
}

正反转代码↓

#include <reg51.h>
unsigned int i,j;
/**********************延时函数****************/
void Delay(unsigned int xms)  //延时函数 @12.000MHz Delay(1)=1ms  
{
   unsigned char i, j;
   while(xms--) 
  {
	i = 2;
	j = 239;
	do{while (--j);} 
	while (--i);
  }
}
/***********************************************/
sbit DIR=P2^0;       //方向控制,低电平正转,高电平反转
sbit STEP=P2^1;     //脉冲输入,控制高低电平不断变化
sbit ENABLE=P2^5;    //使能端,低电平启动
/***********分配细分方式引脚************/
sbit MS3=P2^2;      
sbit MS2=P2^3;
sbit MS1=P2^4;
#define MS {MS1=0;MS2=1;MS3=0;}    //选择细分方式4,可修改MS1~MS3的值选择细分方式
                                   //选择细分方式看表1
void step(void)
{	
	 STEP=0;    //脉冲输入
	 Delay(1);   //延时 Delay(1)=1ms
	 STEP=1; 
	 Delay(1);			
}
void UP_dj(void)    //前进
{
		 DIR=0;     //低电平上升
		 step();

}
void DN_dj(void)    //后退
{
		 DIR=1;		//高电平下降
	     step();	
}
void main()         //主函数
{
		MS          //选择细分方式4
	    ENABLE=0;   //使能端,低电平启动
	   while(1)
	{	
		for(i=0;i<5000;i++)
		{
			 ENABLE=0; 	    //使能端,低电平启动
             UP_dj();        //正转
		}
		 
	        ENABLE=1;       //高电平停止
          	Delay(1000);    //停止1s
		
		 for(j=0;j<5000;j++)
		{    
		     ENABLE=0;      //启动
		     DN_dj();       //反转
			
		}
		
		    ENABLE=1;       //高电平停止
          	Delay(1000);    //停止1s  
	}	

}

  • 1
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
A4988电机驱动模块是一种常用的微步电机驱动器,它具有轻便小巧、易于操作的特点,并且自带内置转换器,非常实用。学会使用A4988对于后续学习DIY3D打印机、雕刻机等项目非常有帮助。 以下是使用A4988电机驱动模块的基本教程: 1. 连接驱动器与步电机:将A4988模块的DIR和STEP引脚分别连接到微控制器(比如Arduino)的数字IO口,将驱动器的ENABLE引脚连接到一个数字IO口(用于使能或禁用驱动器),将电源的VDD和GND引脚分别连接到5V和GND。 2. 设置步电机参数:根据你所使用的步电机的规格,设置A4988驱动器上的微步分辨率和电流限制。这些参数可以通过调整驱动器上的MS1、MS2和MS3引脚来设置。具体设置方法可以参考A4988驱动器的型号手册。 3. 编写控制代码:使用Arduino或其他微控制器编写代码,控制A4988模块的DIR和STEP引脚,以实现步电机的旋转。你可以根据需要调整步电机的方向、转速和旋转角度。 该教程的原文可以在以下链接中找到:<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [A4988驱动电机教学](https://blog.csdn.net/qq_42250136/article/details/126346114)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [使用Arduino和A4988驱动器模块控制NEMA 17步电机](https://blog.csdn.net/acktomas/article/details/115934067)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值