步进电机简单入门

5线4相步进电机

通过使不同的线圈导通,产生磁极,来控制中间转子运动.

 细分驱动

        通过控制输入电流的大小,让转动的偏移角度随电流大小而变化(有专门的驱动器让旋转角度细分)

 28BYJ-48步进电机

 

 如果想让28BY48旋转一圈,需要360/5.625*64 = 64*64 = 4096个脉冲

#ifndef BJ_H
#define BJ_H
#include "reg52.h"
void step_motor_set(u8 direction);

#endif
#include "bj.h"


sbit IN_D = P1^0;
sbit IN_C = P1^1;
sbit IN_B = P1^2;
sbit IN_A = P1^3;

void step_motor_set(u8 direction)
{
	static u8 step = 0;
	if(direction == 0)
	{
		step = 7 - step;
	}
	switch(step)
	{
		case 0:
			IN_A = 1;
			IN_B = 1;
			IN_C = 1;
			IN_D = 0;
			break;
		case 1:
			IN_A = 1;
			IN_B = 1;
			IN_C = 0;
			IN_D = 0;
			break;
		case 2:
			IN_A = 1;
			IN_B = 1;
			IN_C = 0;
			IN_D = 1;
			break;
		case 3:
			IN_A = 1;
			IN_B = 0;
			IN_C = 0;
			IN_D = 1;
			break;
		case 4:
			IN_A = 1;
			IN_B = 0;
			IN_C = 1;
			IN_D = 1;
			break;
		case 5:
			IN_A = 0;
			IN_B = 0;
			IN_C = 1;
			IN_D = 1;
			break;
		case 6:
			IN_A = 0;
			IN_B = 1;
			IN_C = 1;
			IN_D = 1;
			break;
		case 7:
			IN_A = 0;
			IN_B = 1;
			IN_C = 1;
			IN_D = 0; 
			break;
	}
	step++;
	if(step >= 8)
	{
		step = 0;
	}
}
void Timer0() interrupt 1
{
	static u16 j;
	TH0=0XFC;	//给定时器赋初值,定时1ms
	TL0=0X18;
	i++;
	j++;
	if(j >= 7)
	{
		step_motor_set(1);
		j = 0;
	}
}

直接找了个定时器中断例程,把步进电机处理函数丢到终端中(实际项目不能这么做这里仅测试),我买的28BY48步进电机是12V,而普中开发板的接口是5V,转起来贼慢.可能和电压有关,有点带不起来.

以下为我找到的驱动步进电机的方法,使用PWM来进行控制,相比上面的方法,PWM驱动的时候电机走的更加顺滑。

步进电机的好处是,你可以省掉用于测量电机转角的传感器。因此在结构上和价格上有一定的优势。而且它的位置和速度控制相对简单。其缺点是,第一,与同等功率的电机相比载荷比较小,没有角度传感器的情况下不能输出大力矩。第二,功耗相对较大,要么全开,要么全关。所以要么接近满功耗,要么就不能出力。

因此步进电机一般只用于载荷较小而且十分确定、位置精度要求并不非常高,对体积敏感或在较低价格想要做到较高可靠性的场合。最常见的就是光驱、扫描仪、复印机等等。当然,它和舵机一样,也受到没有能力自行搭建伺服电机系统的业余爱好者的喜爱,在一些业余项目上面用于替代完整的伺服电机系统。

步进电机驱动并不是PWM控制的,而是每个时间片给8个步骤依次供电。如果想细分驱动,必须用到专用的驱动IC,通过输入不同的PWM可以控制电路中电流的大小。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

入门->放弃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值