今天写了个步进电机驱动
电机如图
驱动原理
这个步进电机是四相五线制,只要给它特定的8个脉冲就能使它内部的电机转动1圈,减速比为64:1
驱动程序
main.c文件
#include"reg52.h"
#include"step.h"
void main(){
while(1){
StepMotor(2,1,500);
Delay_50ms(20);
StepMotor(4,0,1000);
Delay_50ms(20);
}
}
step.c文件
#include "reg52.h"
#include "step.h"
void delay(unsigned int i)
{
while(i--);
}
unsigned char code Step[] = {
0x0e,0x0c,0x0d,0x09,0x0b,0x03,0x07,0x06
};
void StepMotor(unsigned char cirle,bit mode, unsigned int speed)
{
if(mode)
{
unsigned int k;
unsigned char i;
for(k=0;k<64*cirle*4;k++)
{
for(i=0;i<8;i++)
{
P2=Step[i];
delay(speed);
}
}
}
else
{
unsigned int k;
unsigned char i;
for(k=0;k<64*cirle*4;k++)
{
for(i=8;i>0;i--)
{
P2=Step[i];
delay(speed);
}
}
}
}
step.h文件
#ifndef __STEP_H__
#define __STEP_H__
void StepMotor(unsigned char cirle,bit mode, unsigned int speed);
#endif