两相四线步进电机的驱动

说明:STM32、L298、TB6612、步进电机。
一:L298驱动步进电机
1.关于L298
原理:电机驱动模块内部有H桥的电路,包括4个三极管和1个电机,要使电机运转,必须导通对角线上的一对三极管。根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。

两相四线步进电机的驱动_第1张图片
内部电路
两相四线步进电机的驱动_第2张图片

内部电路旨在理解双h桥电路。
由图可知,L298内部两个双H桥电路分别由4个NPN三极管、四个门电路组成,在驱动直流电机时分别控制两个电机的正反转,驱动步进电机时由给出的双绕组脉冲控制一个步进电机的正反转。

2.驱动一个步进电机接线方式:
IN1 IN2 IN3 IN4接开发板的四个管脚,用于给出脉冲;
两相四线步进电机中的红绿黄蓝分别接L298的OUT1 OUT2 OUT3 OUT4;
+5V接开发板的5V,12V接外接电源,GND接外接电源GND,用于给驱动模块以及电机供电,电压不够可能出现电机抖动但是不转动的情况;
ENA ENB 板载5V等分别用跳接帽短接。
至此完成接线工作。
3.节拍部分,二相四线可使用4、8节拍
正转:
(1)四拍:A 1000,A- 0010,B 0100,B- 0001.
(2)八拍:A 1000,AA- 1010,A- 0010,A-B 0110,B 0100,BB- 0101,B- 0001,B-A 1001.
反转均逆序。
4.电机固有步距角: 它表示控制系统每发一个步进脉冲信号,电机所转动的角度。
步距角=360/(转子齿数*节拍数);
5.步进电机有速度控制与角度控制
速度控制:步进电机的转速取决于脉冲频率、转子齿数和拍数。其角速度与脉冲频率成正比,而且在时间上与脉冲同步。因而在转子齿数和运行拍数一定的情况下,只要控制脉冲频率即可获得所需速度。在设计代码时,可以通过设置了两个脉冲之间的延时从而改变速度。
角度控制:通过控制脉冲可以转出想要的角度。
6.代码部分:
初始化,STM32开发板GPIOA,PIN0,PIN1,PIN2,PIN3.

void MOTOR_Init(void)
{
  RCC->APB2ENR|=1<<2;
  GPIOA->CRL&=0xffff0000;
  GPIOA->CRL|=0x00003333;
}

节拍(8):

//第一拍
  AIN1_1=1;
  AIN1_2=0;
  BIN1_1=0;
  BIN1_2=0;
  delay_us(2500);
  //第二拍
  AIN1_1=1;
  AIN1_2=0;
  BIN1_1=1;
  BIN1_2=0;
  delay_us(2500);
  //第三拍
  AIN1_1=0;
  AIN1_2=0;
  BIN1_1=1;
  BIN1_2=0;
  delay_us(2500);
 //第四拍
  AIN1_1=0;
  AIN1_2=1;
  BIN1_1=1;
  BIN1_2=0;
  delay_us(500);
    //第五拍
  AIN1_1=0;
  AIN1_2=1;
  BIN1_1=0;
  BIN1_2=0;
  delay_us(2500);
  //第六拍
  AIN1_1=0;
  AIN1_2=1;
  BIN1_1=0;
  BIN1_2=1;
  delay_us(2500);
  //第七拍
  AIN1_1=0;
  AIN1_2=0;
  BIN1_1=0;
  BIN1_2=1;
  delay_us(2500);
 //第八拍
  AIN1_1=1;
  AIN1_2=0;
  BIN1_1=0;
  BIN1_2=1;
  delay_us(2500);

针对于节拍的控制比起对一个周期的控制可以相对精确一些。


TB6612驱动步进电机
内容说明:其他部分参考上面的内容,主要注意使用TB6612时的接线方式。
GND PWMA
VCC AIN2
AO1 AIN1
AO2 NC
BO2 BIN1
BO1 BIN2
VM PWMB
GND GND

GND接地;
PWMA、PWMB接5V;
AO1、AO2、BO1、BO2分别接步进电机的红绿黄蓝;
AIN1、AIN2、BIN1、BIN2分别接开发板的相应管脚,一一对应;
VM、GND接外接电源;
NC可以悬空。

对原理以及接线方式理解之后,主要是针对具体问题设计的算法,充分利用模块的相应功能设计出功能完整的代码对基础和经验的要求较高。

你可能感兴趣的:(嵌入式驱动,嵌入式基础)