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