1. 程式人生 > >兩相四線步進電機的驅動

兩相四線步進電機的驅動

說明:STM32、L298、TB6612、步進電機。
一:L298驅動步進電機
1.關於L298
原理:電機驅動模組內部有H橋的電路,包括4個三極體和1個電機,要使電機運轉,必須導通對角線上的一對三極體。根據不同三極體對的導通情況,電流可能會從左至右或從右至左流過電機,從而控制電機的轉向。

L298
內部電路
電路框圖

內部電路旨在理解雙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可以懸空。

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

相關推薦

電機驅動

說明:STM32、L298、TB6612、步進電機。 一:L298驅動步進電機 1.關於L298 原理:電機驅動模組內部有H橋的電路,包括4個三極體和1個電機,要使電機運轉,必須導通對角線上的一對三極體。根據不同三極體對的導通情況,電流可能會從左至右或從右

2電機接線及驅動方法

步進電機原理 按照常理來說,步進電機接線要根據線的顏色來區分接線。但是不同公司生產的步進電機,線的顏色不一樣。特別是國外的步進電機。 那麼,步進電機接線應該用萬用表打表。 步進電機內部構造如下圖: 通過上圖可知,A,~A是聯通的,B和~B是聯通。那麼,A和~A是一

esp8266驅動ULN2003帶28byj電機時,arduino IDE中遇到的問題

驅動示例如下,注意Stepper stepper(STEPS, 8, 9, 10, 11),改為Stepper stepper(STEPS, 8, 10, 9, 11)即可,該程式在arduino UNO板上執行後,電機正反轉沒有問題,但在esp8266執行時只

【膜摸摸】網紅電機驅動A4988和DRV8825的對比和區別及選用實踐 for 軸CNC雕刻/3D列印

【轉自】http://blog.csdn.net/ling3ye/article/details/47001251 用Arduino驅A4988驅動電機對於DIY3D印表機: 材料清單BOM: Arduino uno *1A4988      

海思電機驅動

hisi_motor.c#include <linux/module.h> //所有模組都需要的標頭檔案 #include <linux/kernel.h> #include <linux/fs.h> //檔案系統有關的,結構體file_o

TMC260/TMC2660/TMC262電機驅動

1.TMC260   TCM260是德國TRINAMIC公司產的步進電機驅動晶片,綜合性能應該是步進電機驅動晶片中排前列的,當然價格也是。TMC260程式上相容TMC2660、TMC262,其中TMC2660是比較新的型號,驅動電流也比TMC260要大;TMC

樹莓派控制五電機

同樣是大二時候的坑......就不明白了當初為什麼不把程式碼也給貼上去,現在就貼出程式碼。 #include<stdio.h> #include<stdlib.h> #incl

電機和五電機

  步進電機是一種離散運動的裝置,它和現代數字控制技術有著本質的聯絡。在目前國內的數字控制系統中,步進電機的應用十分廣泛。隨著全數字式交流伺服系統的出現,交流伺服電機也越來越多地應用於數字控制系統中。為了適應數字控制的發展趨勢,運動控制系統中大多采用步進電機或全數字式交流伺服電機作為執行電動機。

電機相和三相/五的區別

步進電機的相數:是指電機內部的線圈組數,目前常用的有二相、三相、四相、五相步進電機。電機相數不同,其步距角也不同,一般二相電機的步距角為0.9°/1.8°、三相的為0.75°/1.5°、五相的為0.36°/0.72° 。 保持轉矩:是指步進電機通電但沒有轉動時,定子鎖住轉子的力矩。它是步進電

Y07-28D1-5010D 日本信濃馬達 混合式電機驅動器組合

Y07-28D1-5010D 日本信濃步進馬達 上一條:日本信濃Y07-43D1-4275 3D印表機專用雙軸步進電機 下一條:供應日東波峰焊專用日本信濃86步進電機 產品詳情 品牌:日本東方 型號:Y07-20D

Y07-28D1-5010D 日本信濃馬達 混合式電機驅動器組合

Y07-28D1-5010D 日本信濃步進馬達 產品詳情 品牌:日本東方 型號:Y07-20D1-2401 型別:機電式 適用範圍:通用 極數:2極 定子相數:單相 機殼保護方式:封閉式 加工定製:是 額定功率:200 額

28BYJ48電機 4拍、8拍驅動序表 C51程式程式碼

值得參考的資料推薦(新手建議先閱讀,因為本文直接跳過了概念介紹): http://blog.sina.com.cn/s/blog_6035432c0100ha1f.html http://blog.csdn.net/feiyinzilgd/article/details/5743730 http:/

A4988驅動42電機

操作 got 左移 find 連接 edi mos hsv period A4988步進電機驅動器驅動控制42步進電機速度,步進電機調速,調節驅動電流 1 A4988步進電機驅動器簡介 方

MicroPython TPYBoard v102 驅動28BYJ-48電機

發送 角度 數值 () back delay img 啟動 rst 實驗目的 了解步進電機的工作原理 學習步進電機的驅動方法 實驗器材 TPYBoard v102 1塊 微型步進電機(28BYJ-48) 1個 步進電機驅動板(ULN200

Arduino ULN2003驅動模組+28BYJ-48電機

步進電機,由於其獨特的設計,可以沒有任何反饋機制而控制到一個高度的準確性。一個步進電機的軸,安裝有一系列的磁鐵,是由一系列的電磁線圈控制,這些線圈按一個特定的序列排列正負極,尤其是向前或向後移動一小“步”。 有兩種型別的步進電機,單極型和雙極型電晶體,而且知道你正在使用哪種

電機 28BYJ-48介紹和驅動及程式設計

28BYJ-48步進電機: 步進電機是一種將電脈衝轉化為角位移的執行機構。通俗一點講:當步進驅動器接收到一個脈衝訊號,它就驅動步進電機按設定的方向轉動一個固定的角度(及步進角)。您可以通過控制脈衝個來控制角位移量,從而達到準確定位的目的;同時您可以通過控制脈衝頻

[嵌入式Linux驅動]S5PV210的電機Linux驅動程式

#include <asm/io.h> #include <asm/uaccess.h> #include <linux/fs.h> #include <linux/delay.h> #include <linux/module.h> #inclu

Arduino(2560)控制電機通過控制器

Arduino 2560控制兩個步進電機用arduino和步進電機控制器驅動兩個步進電機,具體的接線過程和怎樣連線都在圖片上。準備工具:兩個步進電機(我用的是J42):Arduino板(我用的是2560):步進電機控制器:電源介面卡:一 儲備知識:1.步進電機的繞組:A+:黑

【常用晶片】ULN2003工作原理及中文資料(例項:STM32驅動28BYJ48電機

ULN2003的基本介紹ULN2003的概述ULN2003是高耐壓、大電流複合電晶體陣列,由七個矽NPN 複合電晶體組成。一般採用DIP—16 或SOP—16 塑料封裝。ULN2003的主要特點:ULN2003 的每一對達林頓都串聯一個2.7K 的基極電阻,在5V 的工作電壓

使用ULN2803驅動28BYJ-48電機

uln2803則是解決驅動問題,微控制器達不到驅動電流,使用也很方便,1—8引腳是輸入,9接地,10接VCC,11到18輸出,輸入高電平,輸出低電平,輸出高,則無法驅動電機,這裡的電機正極接電源,負極接uln2803輸出埠,這裡有一個問題,樓主使用的時候,用的是uln2803