当前位置:网站首页>A4988 drive stepper motor "recommended collection"
A4988 drive stepper motor "recommended collection"
2022-07-02 19:21:00 【Full stack programmer webmaster】
Hello everyone , I meet you again , I'm your friend, Quan Jun .
A4988 It's usually used arduino To drive , I use STM32F103 Driven .
First push a web page ,https://www.pololu.com/product/1182, There are more detailed and professional instructions on it , There is also a video explanation about limiting current to make subdivision more accurate , All in all , major . Then push one datasheet,https://www.pololu.com/file/0J450/a4988_DMOS_microstepping_driver_with_translator.pdf
I use it
The driver is easy to write , First of all, make sure the wiring mode .
Code :
motor.c
//IO initialization
void MOTOR_Init(void)
{
RCC->APB2ENR|=1<<3;
GPIOB->CRH&=0xff000000;
GPIOB->CRH|=0x00333333;
}
// To subdivide
// x==1 Full step
// x==2 half of step
// x==4 1/4 Step
// x==8 1/8 Step
// x==16 1/16 Step
void Step_Micr(u16 x)
{
switch(x)
{
case 1:Full_step;break;
case 2:Half_step;break;
case 4:Quarter_step;break;
case 8:Eighth_step;break;
case 16:Sixteenth_step;break;
default:break;
}
}
// Parameters
// dir:FALSE Positive rotation TRUE reverse
// period cycle
// step pulse
void Step_Control(u8 dir,u16 period,u32 steps)
{
u32 i;
for(i=0; i <= steps;i++)
{
DIR = dir;
STEP = 1;
delay_us(1);
STEP = 0;
delay_us(period);//periodԽС£¬×ªËÙÔ½¿ì£¬²»ÒªÐ¡ÓÚ1000
}
}
// This function can be locked
// 0 Cling to death
// 1 normal
void Step_Enable()
{
ENABLE = 0;
}
motor.h
#define STEP PBout(8) //step
#define DIR PBout(9) //dir
#define MS1 PBout(10)//MS1
#define MS2 PBout(11)//MS2
#define MS3 PBout(12)//MS3
#define ENABLE PBout(13)//ENABLE
// Subdivision macro definition
#define Full_step {MS1 = 0;MS2 = 0;MS3 = 0;}
#define Half_step {MS1 = 1;MS2 = 0;MS3 = 0;}
#define Quarter_step {MS1 = 0;MS2 = 1;MS3 = 0;}
#define Eighth_step {MS1 = 1;MS2 = 1;MS3 = 0;}
#define Sixteenth_step {MS1 = 1;MS2 = 1;MS3 = 1;}
void MOTOR_Init(void);
void Step_Micr(u16 x);
void Step_Enable(void);
void Step_Control(u8 dir,u16 period,u32 steps);
main.c
int main(void)
{
int i=0;
Stm32_Clock_Init(9);
delay_init(72);
MOTOR_Init();
Step_Micr(1);//1/2/4/8/16
for(i=0;i<10;i++)
{
Step_Control(FALSE,1600,200);// Positive rotation
delay_ms(1000);
Step_Control(TRUE,1600,200);// reverse
delay_ms(1000);
}
Step_Enable();// Cling to death
while(1)
{
}
}
Realize a positive turn in the full step state , Turn around , Hold on for a while and then lock up .
Publisher : Full stack programmer stack length , Reprint please indicate the source :https://javaforall.cn/148605.html Link to the original text :https://javaforall.cn
边栏推荐
- FastDFS安装
- Mysql高级篇学习总结7:Mysql数据结构-Hash索引、AVL树、B树、B+树的对比
- The mybatieshelperpro tool can be generated to the corresponding project folder if necessary
- [100 cases of JVM tuning practice] 03 -- four cases of JVM heap tuning
- Transformation of thinking consciousness is the key to the success or failure of digital transformation of construction enterprises
- metric_ Logger urination
- 新手必看,点击两个按钮切换至不同的内容
- Masa framework - DDD design (1)
- 数据降维——主成分分析
- PHP非对称加密方法私钥及公钥加密解密的方法
猜你喜欢
Mysql高级篇学习总结7:Mysql数据结构-Hash索引、AVL树、B树、B+树的对比
Web2.0的巨头纷纷布局VC,Tiger DAO VC或成抵达Web3捷径
教程篇(5.0) 09. RESTful API * FortiEDR * Fortinet 网络安全专家 NSE 5
聊聊电商系统中红包活动设计
数据降维——因子分析
Transformation of thinking consciousness is the key to the success or failure of digital transformation of construction enterprises
ICDE 2023|TKDE Poster Session(CFP)
潇洒郎:彻底解决Markdown图片问题——无需上传图片——无需网络——转发给他人图片无缺失
Processing strategy of message queue message loss and repeated message sending
MySQL advanced learning summary 8: overview of InnoDB data storage structure page, internal structure of page, row format
随机推荐
FastDFS安装
线程应用实例
Transformation of thinking consciousness is the key to the success or failure of digital transformation of construction enterprises
新手必看,点击两个按钮切换至不同的内容
思维意识转变是施工企业数字化转型成败的关键
ORA-01455: converting column overflows integer datatype
Novice must see, click two buttons to switch to different content
R language dplyr package filter function filters dataframe data. If the name of the data column (variable) to be filtered contains quotation marks, you need to use!! SYM syntax processing, otherwise n
yolov3 训练自己的数据集之生成train.txt
Hospital online inquiry source code hospital video inquiry source code hospital applet source code
Introduction to the paper | analysis and criticism of using the pre training language model as a knowledge base
R language uses the lsnofunction function function of epidisplay package to list all objects in the current space, except user-defined function objects
When converting from list to map, if a certain attribute may cause key duplication and exceptions, you can set the way to deal with this duplication
数字滚动带动画
Data dimensionality reduction factor analysis
新手必看,點擊兩個按鈕切換至不同的內容
使用CLion编译OGLPG-9th-Edition源码
Mysql高级篇学习总结6:索引的概念及理解、B+树产生过程详解、MyISAM与InnoDB的对比
PyTorch函数中的__call__和forward函数
"Patient's family, please come here" reading notes