多语言展示
当前在线:1636今日阅读:86今日分享:14

机器人制作之STC单片机控制步进电机

步进电机因运行平稳、控制性好,在自动化和机器人制作中应用广泛。通过STC15系列单片机及L293D或L298N电机驱动芯片能很好地控制步进电机的运行。
工具/原料
1

L293D或L298N电机驱动芯片

2

STC15F2K60S2单片机

3

2相4线步进电机

方法/步骤
1

#include //2相4拍,STEP1-STEP2-STEP3-STEP4是顺时针转动,STEP1-STEP4-STEP3-STEP2是逆时针转动。#define STEP1 {A1=1;A2=0;B1=1;B2=0;}#define STEP2 {A1=1;A2=0;B1=0;B2=1;}#define STEP3 {A1=0;A2=1;B1=0;B2=1;}#define STEP4 {A1=0;A2=1;B1=1;B2=0;}sbit EN1 = P1^0;sbit A1 = P1^1;sbit A2 = P1^2;sbit EN2 = P1^3;sbit B1 = P1^4;sbit B2 = P1^5;

2

//延时函数void DelayMS(unsigned int a){    unsigned int i;    while( a-- != 0){        for(i = 0; i < 600; i++);    }}

3

/*****函数名:步进电机控制调用:stepper(bit direction,unsigned char speed,unsigned long steps)参数:direction(控制方向0为顺时针,1为逆时针),speed(控制速度最快是1,速度快容易失步),steps(走多少步)返回值:无*****/void stepper(bit direction,unsigned char speed,unsigned long steps){ unsigned long j; unsigned long k=0; //stepsX4=steps/4; if(direction==0){  //顺时针    for(j=0;j

4

//主函数void main(void){ EN1=1; EN2=1; while(1){    stepper(0,5,200);    DelayMS(1000);            stepper(1,1,200);        DelayMS(1000); } }

注意事项
1

速度设置不能太快,如果设为1会容易失步。

2

驱动芯片的选择需要根据步进电机的电流决定。

推荐信息