一、本次使用的硬件
開發板:stm32f103c8t6核心板
電機:ULN2003 步進電機擴展板+普通42電機
二、簡單原理及代碼
1.原理
四相步進電機有兩種運行方式 1.四相四拍;2.四相八拍。
拍數
指電機轉過一個齒距角所需脈沖數,通俗的來講拍數指的是步進電機運行時每轉一個齒距所需的脈沖數。以四相電機為例,有四相單四拍運行方式即A-B-C-D-A,有四相四拍運行方式即AB-BC-CD-DA-AB,有四相八拍運行方式即 A-AB-B-BC-C-CD-D-DA-A。
轉動
給四個管腳一定頻率的脈沖即可使其轉動,脈沖頻率越快,轉動越快。反之轉動越慢,脈沖次數越多,轉動角度越大。
實現方式
使用最簡單的延時控制脈沖,將數據放在數組內通過for循環發給驅動模塊。不使用定時器或者復雜的計算,能實現短時間內將電機驅動起來。
2.主要函數
main.c
#include "delay.h"
#include "sys.h"
#include "stdio.h"
#include "motor.h"
//IN4: PB9 d
//IN3: PB8 c
//IN2: PB7 b
//IN1: PB6 a
int main(void)
{
Moto_Init(); //電機
delay_init(); //延時函數初始化
while(1)
{
Motor_Ctrl_Direction_Angle(1,180);//正轉180度
delay_ms(500);
Motor_Ctrl_Direction_Angle(0,90);//反轉90度
}
}
簡單的執行正轉180度,然后反轉90度。中間的delay_ms()按需要修改,但是注意如果delay_ms()太短可能出現卡頓現象。因為執行上一個轉動角度的任務需要一定的時間。所以要合理修改。
motor.c
#include "motor.h"
#include "delay.h"
unsigned short phasecw[4] ={0x0200,0x0100,0x0080,0x0040};// D-C-B-A 反轉
unsigned short phaseccw[4]={0x0040,0x0080,0x0100,0x0200};// A-B-C-D 正轉
/***************************************************/
// 電機模塊與單片機連接引腳
//IN4: PB9 d
//IN3: PB8 c
//IN2: PB7 b
//IN1: PB6 a
void Moto_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 ;//引腳按著INT1順序接就行了
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);
GPIO_ResetBits(GPIOB,GPIO_Pin_6 | GPIO_Pin_7 |GPIO_Pin_8 |GPIO_Pin_9 );
}
引腳初始化的函數,可以按照自己所需使用的引腳進行修改。
void MotoRcw(void) //反轉
{
int i;
for(i=0;i<4;i++)
{
GPIO_Write(GPIOB,phasecw[ i]);
delay_ms(3);
}
}
正轉函數,修改 delay_ms()即可以改變轉動速度,反轉函數依然同樣操作。
void Motor_Ctrl_Direction_Angle(int direction, int angle)
{
u16 j;
if(direction == 1)
{
for(j=0;j<64*angle/45;j++)
{
MotoRccw();//正轉
}
MotorStop();//停止
}
else
{
for(j=0;j<64*angle/45;j++)
{
MotoRcw();//反轉
}
MotorStop();//停止
}
}
控制電機轉動角度函數
direction為方向變量,輸入1為正轉,0為反轉。
angle為角度變量,可為0-360具有實際意義。
**注意:
j<64*angle/45
這一句是轉動一度的數學公式,是根據這個步進電機本身的轉子數計算出來的.
程序:
步進電機驅動程序.7z
(180.49 KB, 下載次數: 277)
2021-6-8 14:19 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|