前段時間做一個項目,需要用到A4988驅動42步進電機,在網上找了很多資料和代碼都不能用。
最后找到一個可以用的,不過IO初始化用的是寄存器。
做了一些注釋,分享出來。
制作出來的實物圖如下:
20180411223327369.jpg (184.21 KB, 下載次數: 84)
下載附件
2020-12-26 22:25 上傳
電路原理圖如下:
20180411223448063.jpg (202.19 KB, 下載次數: 58)
下載附件
2020-12-26 22:25 上傳
A4988-Diagram.png (18.7 KB, 下載次數: 70)
下載附件
2020-12-26 22:27 上傳
{3LN42C8MDX5(]085O{D26J.png (227.66 KB, 下載次數: 80)
下載附件
2020-12-26 22:08 上傳
NFD`GRM5YK]Q1BEOTW%VRL7.png (28.85 KB, 下載次數: 57)
下載附件
2020-12-26 22:21 上傳
單片機源程序如下:
- /*
- STM32F103C8T6
- A4988步進驅動 2相4線 42步進電機
- dir:方向控制,1:正轉 0:反轉
- period:周期(速度 越大越慢)
- steps:脈沖個數(200/圈)
- */
- #include "sys.h"
- #include "delay.h"
- #include "stdio.h"
- #include "usart.h"
- #include "motor.h"
- //實現全步狀態下正轉一圈,反轉一圈,持續一會兒后抱死
- int main(void)
- {
- int i=0;
- uart_init(115200); //串口初始化
- delay_init(); //延時初始化
- MOTOR_Init();
- Step_Micr(1); //1/2/4/8/16
-
- // for(i=0;i<10;i++)
- // {
- // Step_Control(1,1600,400); //正轉
- // delay_ms(1000);
- // Step_Control(0,1600,200); //反轉
- // delay_ms(1000);
- // }
- // Step_Enable(); //抱死
-
- while(1)
- {
- Step_Control(1,1600,4000); //正轉
- }
- }
復制代碼
全部程序51hei下載地址:
STM32F103C8T6-A4988驅動+42步進電機.7z
(184.89 KB, 下載次數: 242)
2020-12-26 22:27 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|