天天看點

兩相四線步進電機的驅動

說明:STM32、L298、TB6612、步進電機。

一:L298驅動步進電機

1.關于L298

原理:電機驅動子產品内部有H橋的電路,包括4個三極管和1個電機,要使電機運轉,必須導通對角線上的一對三極管。根據不同三極管對的導通情況,電流可能會從左至右或從右至左流過電機,進而控制電機的轉向。

兩相四線步進電機的驅動

内部電路

兩相四線步進電機的驅動

内部電路旨在了解雙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|=<<;
  GPIOA->CRL&=;
  GPIOA->CRL|=;
}
           

節拍(8):

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

針對于節拍的控制比起對一個周期的控制可以相對精确一些。

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可以懸空。

對原理以及接線方式了解之後,主要是針對具體問題設計的算法,充分利用子產品的相應功能設計出功能完整的代碼對基礎和經驗的要求較高。

繼續閱讀