#单片机(TB6600驱动42步进电机)

1.IDE:keil


2.设备:保密


3.实验:使用单片机通过普通IO口控制TB6600驱动42步进电机


4.时序图:

TB6600

ENA+、ENA-DIR-、DIR+PUL-、PUL+B-、B+A+、A-VCC、GND
使能电机(直接悬空不接)方向脉冲输入(普通IO口模拟即可)同组同组看驱动的电机的电压

s1-s6根据驱动的电机设置电机驱动板,在下面第二张图里面可以看到 

S1-S3设置步进电机的细分:

比如S1-ON,S2-ON,S3-OFF那么Pul输入200个脉冲,电机转一圈,

360度/200=1.8度,一个脉冲,电机转1.8度。

比如S1-ON,S2-OFF,S3-ON那么Pul输入400个脉冲,电机转一圈,

360度/400=0.9度,一个脉冲,电机转0.9度。

S4-S6设置电机的驱动电流:

我们现在使用的42步进电机,驱动电流为1A,所以S4-ON,S5-OFF,S6-ON。(根据使用的电机设置)

42步进电机

供电12V

如何判断是否好坏:

所有线拧在一起,用手转电机,转不动,再把线散开,能转动电机,则证明电机为好的。

如何判断两根线是否为同一组:

一般默认红(A+)黑(A-)为一组,蓝(B+)绿(B-)为一组,但是有些不是的。将四根线,两根两根的拧在一起,转动电机,转动有阻力则为一组,没有阻力则不是一组。

接法:

(1)共阴极:DIR-、PUL-、单片机GND接在一起,DIR+、PUL+接单片机IO口(高电平有效)

(2)共阳极:DIR+、PUL+、单片机VCC接在一起,DIR-、PUL-接单片机IO口(低电平有效)

(3)VCC直流电源正极12V,GND接直流电源负极

(4)A+、A-、B+、B-理论上说只要能保证同一组即可

(5)ENA悬空

部分问题:

(1)脉冲频率不要过高,否则会出现电机响而不转

(2)注意电机负重不要过大


5.步骤:

(1)TB6600图片

 

(2)42步进电机图片

(该步进电机为红黑一组,本人的步进电机为黑绿一组(相邻且有排子),具体情况按上述说明测试)


6.代码:

/*
 *一个脉冲(无细分下转动1.8度)
 */
void Step_Run_OnePulse(void)
{
	Pulse_High;
	Delay_ms(20);
	Pulse_Low;
	Delay_ms(20);
 }

/*
 *指定方向转动指定角度
 *细分200情况下:转一圈为360/1.8=200个脉冲
 */
void Step_Run_SpecifyAngle(u8 dir,u8 angle)
{
	u8 pulse_number=0;
  if(dir == Clockwise)               //顺时针
	  Dir_High;
	else  if(dir == Counterclockwise)  //逆时针
	  Dir_Low;
	pulse_number = (u8)((float)angle / 1.8);   //得到需要转动到指定角度的脉冲数
	for(pulse_number ;pulse_number > 0;pulse_number--)
	  Step_Run_OnePulse();
}

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值