【步进电机驱动】【简单暴力,功能强大】基于51单片机的步进电机驱动

今天写了个步进电机驱动

电机如图

在这里插入图片描述

驱动原理

这个步进电机是四相五线制,只要给它特定的8个脉冲就能使它内部的电机转动1圈,减速比为64:1

在这里插入图片描述

驱动程序

main.c文件

#include"reg52.h"
#include"step.h"


void main(){

	while(1){
	//正转1圈,反转2圈
		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--);
}
//给P端口的16进制脉冲输出
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

后面还有加强版的:带OLED显示步进电机运行的状态

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值