久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

(SKU:DRI0035)步進(jìn)電機驅(qū)動擴(kuò)展板(TMC260)

 易水殘虹 2017-04-27
(SKU:DRI0035)步進(jìn)電機驅(qū)動擴(kuò)展板(TMC260)

目錄

 [隱藏

簡介

步進(jìn)電動機是一種將脈沖信號變換成相應(yīng)的角位移(或線位移)的電磁裝置,,是一種特殊的電動機,。一般電動機都是連續(xù)轉(zhuǎn)動的,而步進(jìn)電動機則有定位和運轉(zhuǎn)兩種基本狀態(tài),,當(dāng)有脈沖輸入肘步進(jìn)電動機一步一步地轉(zhuǎn)動,,每給它一個脈沖信號,它就轉(zhuǎn)過一定的角度,。

現(xiàn)在步進(jìn)電機應(yīng)用的領(lǐng)域越來越多,。你也想要用Arduino控制你的步進(jìn)電機嗎,那將會有許多有趣的應(yīng)用,,如繪畫儀,,3D打印機,自動窗簾..,?然而,,市面上很難找到能夠驅(qū)動步進(jìn)電機的Arduino擴(kuò)展板,。讓很多Arduino愛好者無法使用這一功能強大,轉(zhuǎn)動精確的電機,。但是現(xiàn)在不同了,!DFRobot隆重推出步進(jìn)電機擴(kuò)展板,讓你的Arduino主控輕松驅(qū)動步進(jìn)電機,。該步進(jìn)電機驅(qū)動擴(kuò)展板子上擁有一塊TMC260步進(jìn)電機驅(qū)動模塊(最大電流可達(dá)2A),。最高電壓40V。

技術(shù)規(guī)格

  • 適用于雙極性步進(jìn)電機的驅(qū)動,。
  • 通過簡單便捷的SPI串行總線控制或STEP/DIR信號控制,。
  • 兼容Arduino UNO R3、Leonardo,、Mega等控制器,,具備完整端口擴(kuò)展功能。
  • 內(nèi)部集成64bitDAC自身可實現(xiàn)256倍的微步細(xì)分功能,。
  • 集成過流,,短路,過溫等保護(hù)與診斷功能,。
  • 高精度無傳感器電動機負(fù)載檢測,。
  • 可以實現(xiàn)通過外部的模擬信號來實現(xiàn)任意的細(xì)分控制。
  • 帶有專利技術(shù)StallGuard功能可以實現(xiàn)無需傳感器精確測試電機負(fù)載,。
  • 內(nèi)部自帶256細(xì)分可以實現(xiàn)在低速時候平滑控制,。
  • 高速驅(qū)動能力,可以驅(qū)動普通的2相步進(jìn)電機達(dá)到5000RPM(注:一般步進(jìn)用于低速環(huán)境不會超過1000RPM),。
  • 低功耗,,高效率的RDS-ON電源設(shè)計 。
  • 7V-40V電機驅(qū)動電壓,。
  • 帶有專利技術(shù)Coolstep可以根據(jù)電機的負(fù)載自動調(diào)節(jié)驅(qū)動芯片輸出的電流,,避免因為超載而丟步,也減少電機的發(fā)熱量,,和其他驅(qū)動芯片相比節(jié)省75%的能量,。

接口說明

步進(jìn)電機驅(qū)動擴(kuò)展板引腳說明和連接圖

引腳說明

我們在擴(kuò)展板上額外引出了一些引腳,,以方便玩家使用跳帽連接驅(qū)動芯片上的必要引腳,。不用再使用纏人的杜邦線了,!
CS片選端:可以通過跳線帽進(jìn)行CS片選的選擇,,順序依次為D6,D7,,D8,,D9,,從而實現(xiàn)SPI總線模式,。
STEP pin:可以通過跳線帽直接通Arduino上的D5引腳連接,。
DIR pin:可以通過跳線帽直接通Arduino上的D4引腳連接,。
ICSP pin:SPI連接引腳。

步進(jìn)電機科普

指標(biāo)術(shù)語

1,、相數(shù):產(chǎn)生不同對極N,、S磁場的激磁線圈對數(shù)。常用m表示,。
2,、拍數(shù):完成一個磁場周期性變化所需脈沖數(shù)或?qū)щ姞顟B(tài)用n表示,或指電機轉(zhuǎn)過一個齒距角所需脈沖數(shù),,以四相電機為例,,有四相四拍運行方式即AB-BC-CD-DA-AB,四相八拍運行方式即 A-AB-B-BC-C-CD-D-DA-A,。
3,、步距角:對應(yīng)一個脈沖信號,電機轉(zhuǎn)子轉(zhuǎn)過的角位移用θ表示,。θ=360度/(轉(zhuǎn)子齒數(shù)*運行拍數(shù)),以常規(guī)二,、四相,,轉(zhuǎn)子齒為50齒電機為例。四拍運行時步距角為θ=360度/(50*4)=1.8度(俗稱整步),,八拍運行時步距角為θ=360度/(50*8)=0.9度(俗稱半步),。
4、定位轉(zhuǎn)矩:電機在不通電狀態(tài)下,,電機轉(zhuǎn)子自身的鎖定力矩(由磁場齒形的諧波以及機械誤差造成的),。
5、靜轉(zhuǎn)矩:電機在額定靜態(tài)電作用下,,電機不作旋轉(zhuǎn)運動時,,電機轉(zhuǎn)軸的鎖定力矩。此力矩是衡量電機體積的標(biāo)準(zhǔn),,與驅(qū)動電壓及驅(qū)動電源等無關(guān),。 雖然靜轉(zhuǎn)矩與電磁激磁安匝數(shù)成正比,與定齒轉(zhuǎn)子間的氣隙有關(guān),,但過分采用減小氣隙,,增加激磁安匝來提高靜力矩是不可取的,這樣會造成電機的發(fā)熱及機械噪音,。

動態(tài)指標(biāo)術(shù)語

1,、步距角精度:步進(jìn)電機每轉(zhuǎn)過一個步距角的實際值與理論值的誤差。用百分比表示:誤差/步距角*100%,。不同運行拍數(shù)其值不同,,四拍運行時應(yīng)在5%之內(nèi),,八拍運行時應(yīng)在15%以內(nèi)。
2,、失步:電機運轉(zhuǎn)時運轉(zhuǎn)的步數(shù),,不等于理論上的步數(shù)。稱之為失步,。
3,、失調(diào)角:轉(zhuǎn)子齒軸線偏移定子齒軸線的角度,電機運轉(zhuǎn)必存在失調(diào)角,,由失調(diào)角產(chǎn)生的誤差,,采用細(xì)分驅(qū)動是不能解決的。
4,、最大空載起動頻率:電機在某種驅(qū)動形式,、電壓及額定電流下,在不加負(fù)載的情況下,,能夠直接起動的最大頻率,。
5、最大空載的運行頻率:電機在某種驅(qū)動形式,,電壓及額定電流下,,電機不帶負(fù)載的最高轉(zhuǎn)速頻率。
6,、電機正反轉(zhuǎn)控制:當(dāng)電機繞組通電時序為AB-BC-CD-DA或()時為正轉(zhuǎn),,通電時序為DA-CD-BC-AB或()時為反轉(zhuǎn)。

步進(jìn)電機驅(qū)動方式

功率放大是驅(qū)動系統(tǒng)最為重要的部分,。步進(jìn)電機在一定轉(zhuǎn)速下的轉(zhuǎn)矩取決于它的動態(tài)平均電流而非靜態(tài)電流(而樣本上的電流均為靜態(tài)電流),。平均電流越大電機力矩越大,要達(dá)到平均電流大這就需要驅(qū)動系統(tǒng)盡量克服電機的反電勢,。因而不同的場合采取不同的的驅(qū)動方式,,到目前為止,驅(qū)動方式一般有以下幾種:恒壓,、恒壓串電阻,、高低壓驅(qū)動、恒流,、細(xì)分?jǐn)?shù)等,。

電機選擇

步進(jìn)電機有步距角(涉及到相數(shù))、靜轉(zhuǎn)矩,、及電流三大要素組成,。一旦三大要素確定,步進(jìn)電機的型號便確定下來了,。

1,、步距角的選擇

電機的步距角取決于負(fù)載精度的要求,,將負(fù)載的最小分辨率(當(dāng)量)換算到電機軸上,每個當(dāng)量電機應(yīng)走多少角度(包括減速),。電機的步距角應(yīng)等于或小于此角度,。市場上步進(jìn)電機的步距角一般有0.36度/0.72度(五相電機)、0.9度/1.8度(二,、四相電機),、1.5度/3度 (三相電機)等。

2,、靜力矩的選擇

步進(jìn)電機的動態(tài)力矩一下子很難確定,,我們往往先確定電機的靜力矩。靜力矩選擇的依據(jù)是電機工作的負(fù)載,,而負(fù)載可分為慣性負(fù)載和摩擦負(fù)載二種,。單一的慣性負(fù)載和單一的摩擦負(fù)載是不存在的。直接起動時(一般由低速)時二種負(fù)載均要考慮,,加速起動時主要考慮慣性負(fù)載,,恒速運行進(jìn)只要考慮摩擦負(fù)載。一般情況下,,靜力矩應(yīng)為摩擦負(fù)載的2-3倍內(nèi)好,,靜力矩一旦選定,電機的機座及長度便能確定下來(幾何尺寸),。

3、電流的選擇

靜力矩一樣的電機,,由于電流參數(shù)不同,,其運行特性差別很大,可依據(jù)矩頻特性曲線圖,,判斷電機的電流,。

TMC260驅(qū)動器

控制方式

TMC260驅(qū)動芯片有兩種控制方式接口:SPI串行接口和STEP/DIR接口。SPI串行接口使用來設(shè)置芯片寄存器和讀取芯片寄存器值,,驅(qū)動電機需要通過SPI接口設(shè)置初始化參數(shù)和模式,,在SPI模式下也可以用來設(shè)置通過電機線圈的電流,從而代替STEP/DIR的驅(qū)動方式,,因此我們可以單獨通過SPI接口控制步進(jìn)電機,。只使用SPI接口需要占用CPU時間來查找正弦表值不斷發(fā)送線圈的電流值。(注:我們的開發(fā)者在datasheet中并沒有發(fā)現(xiàn)具體的這個sin表值的計算,,出于科學(xué)嚴(yán)謹(jǐn)態(tài)度開發(fā)者就沒有將sin電流計算方式公布,,同時也歡迎廣大使用者共同開發(fā)
STEP/DIR接口是一種傳統(tǒng)的電機控制方式,STEP給出PWM脈沖,,DIR方向控制,。

SPI控制模式

SPI(Serial Peripheral Interface)是一種串行同步通訊協(xié)議,,由一個主設(shè)備和一個或多個從設(shè)備組成,主設(shè)備啟動一個與從設(shè)備的同步通訊,,從而完成數(shù)據(jù)的交換,。同TMC260或者TMC261通信是發(fā)送一個20位命令字和接收一個20位狀態(tài)字。
SPI模式通常用于微步率較低的速度,,在高速度情況下可能會需要到CPU計算速率10-100/s的指令,,因此,應(yīng)用時需要調(diào)整整步的分辨率,。

STEP/DIR

STEP/DIR模式在默認(rèn)的情況下是啟用的,,在每一個信號跳變時,DIR引腳的輸入狀態(tài)電平?jīng)Q定電機前進(jìn)或者后退,,每一個步距角都可以分為整步或者微步運行,,一個整步可以分為2、4,、8,、16、32,、64,、128或256個微步。在微步控制,,DIR輸入為低電平狀態(tài)每一個階躍信號將會增加內(nèi)部微步計數(shù)器值,,一個內(nèi)部表將計數(shù)器的值轉(zhuǎn)換為正弦和余弦值為微步控制電動機的電流。

TMC260控制方式選擇

SPI模式:SDOFF位置高,,STEP/DIR接口失能,,通過DRVCTR指定每個線圈的通過電流。
STEP/DIR模式:SDOFF位置低,,STEP/DIR接口使能,,通過DRVCTRL配置寄存器的值設(shè)置STPE/DIR接口。


TMC260庫使用實例

好了,,前面說了這么多,,難道需要我們的使用者具體去了解這些什么參數(shù)怎樣設(shè)置,寄存器怎樣配置,,配置什么值,,不,我們?yōu)槭褂谜咦隽诉m配的庫函數(shù),,只需要知道怎樣使用我們的庫函數(shù)就行了,。當(dāng)然,每一個步進(jìn)電機的參數(shù)不相同,需要使用者自己去調(diào)試一些參數(shù),,如果覺得這些很麻煩,,請直接使用我們的步進(jìn)電機[混合式步進(jìn)電機-42BYGH1861A-C]

注意:請在1.0.X版本的IDE下編譯,,高版本IDE因庫的更新將導(dǎo)致編譯失敗,。

TMC260庫文件下載鏈接

SPI演示代碼 在SPI模式下,將下面演示代碼下載到Arduino上,,即可控制電機運行,,注意這里的微步功能并沒有完全的使用,我們這里需要對這個函數(shù)(tmc26XStepper.SPI_setCoilCurrent(200))給一個sin電流值,。

/***************************************************
 TMC260 Stepper Motor Driver Shield 
 <http://www./index.php?route=product/product&product_id=1360&search=tmc260&description=true#.Vp9Lrh6OCx8>
  
 ***************************************************
 This example show how to control stepper motors.
  
 Created 2015-6-11
 By Bruce Hee <Loan.he@>
 Modified 2015-6-11
 By Bruce Hee <Loan.he@>
  
 GNU Lesser General Public License.
 See <http://www./licenses/> for details.
 All above must be included in any redistribution
 ****************************************************/
 
/***********Notice and Trouble shooting***************
 1.Connection and Diagram can be found here
 <http://www./wiki/index.php?title=TMC260_Stepper_Motor_Driver_Shield_SKU:_DRI0035>
 2.This code is tested on Arduino Uno, Leonardo, Mega boards.
 3.SHT1x library is created by jonoxer.
 See <https://github.com/CainZ/TMC260-Stepper-Motor-Driver-Shield> for details.
 ****************************************************/
 
#include <SPI.h>
#include <TMC26XStepper.h>

//we have a stepper motor with 200 steps per rotation,CS pin 6, dir pin 4, step pin 5 and a current of 300mA
TMC26XStepper tmc26XStepper = TMC26XStepper(200,6,4,5,800);
void setup() {
    Serial.begin(9600);
    Serial.println("==============================");
    Serial.println("TMC26X Stepper Driver Demo App");
    Serial.println("==============================");
    //set this according to you stepper
    Serial.println("Configuring stepper driver");
    //char constant_off_time, char blank_time, char hysteresis_start, char hysteresis_end, char hysteresis_decrement
    tmc26XStepper.setSpreadCycleChopper(2,24,8,6,0);
    tmc26XStepper.setRandomOffTime(0);
    tmc26XStepper.SPI_setCoilCurrent(100);
    tmc26XStepper.setMicrosteps(128);
    tmc26XStepper.setStallGuardThreshold(4,0);
    Serial.println("config finished, starting");
    Serial.println("started");

      tmc26XStepper.SPI_setSpeed(80);   //Set 80 revolutions per minute
      tmc26XStepper.SPI_step(-200);       //Sets the number of runs for 200 steps, reverse motor 1
      tmc26XStepper.spi_start() ;         //Motor starting
      delay(2000);                         
   
      tmc26XStepper.SPI_step(200);       //Sets the number of runs for 200 steps, that motor is turn 1
      tmc26XStepper.spi_start() ;
      delay(2000);
      
      tmc26XStepper.SPI_setSpeed(100);   //Set 80 revolutions per minute
      tmc26XStepper.SPI_step(-300);       //Sets the number of runs for 300 steps, reverse motor 1.5
      tmc26XStepper.spi_start() ;
      delay(2000);
   
     tmc26XStepper.SPI_setSpeed(120);   
     tmc26XStepper.SPI_step(400);       //reverse motor 2.0
     tmc26XStepper.spi_start() ;
     delay(3000);



}
void loop() {    

        
          //Motor control can be written inside the loop functions, let motor repetitive movements
}


STEP/DIR模式下,,將下面演示代碼下載到Arduino上。
STEP/DIR演示代碼

/***************************************************
 TMC260 Stepper Motor Driver Shield 
 <http://www./index.php?route=product/product&product_id=1360&search=tmc260&description=true#.Vp9Lrh6OCx8>
  
 ***************************************************
 This example show how to control stepper motors.
  
 Created 2015-6-11
 By Bruce Hee <Loan.he@>
 Modified 2015-6-11
 By Bruce Hee <Loan.he@>
  
 GNU Lesser General Public License.
 See <http://www./licenses/> for details.
 All above must be included in any redistribution
 ****************************************************/
 
/***********Notice and Trouble shooting***************
 1.Connection and Diagram can be found here
 <http://www./wiki/index.php?title=TMC260_Stepper_Motor_Driver_Shield_SKU:_DRI0035>
 2.This code is tested on Arduino Uno, Leonardo, Mega boards.
 3.SHT1x library is created by jonoxer.
 See <https://github.com/CainZ/TMC260-Stepper-Motor-Driver-Shield> for details.
 ****************************************************/
#include <SPI.h>
#include <TMC26XStepper.h>

//we have a stepper motor with 200 steps per rotation, CS pin 6, dir pin 4, step pin 5 and a current of 300mA
TMC26XStepper tmc26XStepper = TMC26XStepper(200,6,4,5,700);
int curr_step;
int speed =  0;
int speedDirection = 100;
int maxSpeed = 1000;

void setup() {
  Serial.begin(9600);
  Serial.println("==============================");
  Serial.println("TMC26X Stepper Driver Demo App");
  Serial.println("==============================");
  //set this according to you stepper
  Serial.println("Configuring stepper driver");
  //char constant_off_time, char blank_time, char hysteresis_start, char hysteresis_end, char hysteresis_decrement
  tmc26XStepper.setSpreadCycleChopper(2,24,8,6,0);
  tmc26XStepper.setRandomOffTime(0);
  
  tmc26XStepper.setMicrosteps(32);
  tmc26XStepper.setStallGuardThreshold(4,0);
  Serial.println("config finished, starting");
  Serial.println("started");
}

void loop() {
  if (!tmc26XStepper.isMoving()) {
    speed+=speedDirection;
    if (speed>maxSpeed) {
      speed = maxSpeed;
      speedDirection = -speedDirection;
    } else if (speed<0) {
      speedDirection = -speedDirection;
      speed=speedDirection;
    }
    //setting the speed
    Serial.print("setting speed to ");
    Serial.println(speed);
    tmc26XStepper.setSpeed(speed);
    //we want some kind of constant running time - so the length is just a product of speed
    Serial.print("Going ");
    Serial.print(10*speed);
    Serial.println(" steps");
    tmc26XStepper.step(10*speed);
  } else {
    //we put out the status every 100 steps
    if (tmc26XStepper.getStepsLeft()%100==0) {
      Serial.print("Stall Guard: ");
      Serial.println(tmc26XStepper.getCurrentStallGuardReading());
    }    
  }  
  tmc26XStepper.move();
}


TMC260庫說明

TMC260庫解析

*TMC26XStepper(int number_of_steps, int cs_pin, int dir_pin, int step_pin, unsigned int current, unsigned int resistor)

number_of_steps:每選擇一周的步數(shù),。
cs_pin:SPI片選端使能引腳,。
dir_pin:電機轉(zhuǎn)動方向引腳。
step_pin:電機驅(qū)動器STEP引腳,。
resistor:電流檢測電阻,默認(rèn)為15歐姆(或150毫歐姆),,在使用時可以不賦值。

*TMC26XSet_SPICS(int cs_pin)

cs_pin:在 SPI總線模式下CS引腳選擇,。

*setConstantOffTimeChopper(char constant_off_time, char blank_time, char fast_decay_time_setting, char sine_wave_offset, unsigned char use_current_comparator)

constant_off_time:時間設(shè)定,,控制斬波器最低頻率,對于大多數(shù)應(yīng)用這個時間適合范圍為5us-20us,??稍O(shè)置值為0-15.
blank_time:在一個系統(tǒng)時間周期內(nèi)斬斷時間間隔??稍O(shè)置為0-54,。
hysteresis_start:滯回起始設(shè)置,HEND該值是一個滯后偏移量值,可設(shè)置為1-8,。
hysteresis_end:滯回結(jié)束設(shè)置,設(shè)置滯后結(jié)束值,??稍O(shè)置為-3-12。
hysteresis_decrement:滯回衰減量設(shè)置,,此設(shè)置確定斜率的滯回時間和快速衰減滯回時間,。

*setCurrent(unsigned int current)

current:設(shè)置線圈電流。

*SPI_setCoilCurrent(int Current)

Current:設(shè)置SPI模式下電機線圈電流大小,,注意此時的設(shè)置范圍0-248,。

*setMicrosteps(int number_of_steps)

number_of_steps:設(shè)置每一步間距的微步數(shù)。可設(shè)置為0-256,。

*setStallGuardThreshold(char stall_guard_threshold, char stall_guard_filter_enabled)

stall_guard_threshold:設(shè)置失速保護(hù)(StallGuard)閾值,以獲取合理的StallGuard讀數(shù),。
stall_guard_filter_enabled:失速保護(hù)使能(1),或者失能(0),。

*step(int steps_to_move)

steps_to_move:設(shè)置STEP/DIR模式下前進(jìn)步數(shù),,正負(fù)值確定電機運行方向。

*setSpeed(unsigned int whatSpeed)

whatSpeed:設(shè)置STEP/DIR模式下每分鐘的轉(zhuǎn)數(shù),。

*SPI_step(int spi_steps_to_move)

spi_steps_to_move:設(shè)置SPI模式下前進(jìn)的步數(shù),,正負(fù)值確定電機運行方向。

*SPI_setSpeed(unsigned int whatSpeed)

whatSpeed:設(shè)置SPI模式下每分鐘的轉(zhuǎn)數(shù),。

*tmc26XStepper.move()

STEP/DIR模式下電機開始運行,。

*tmc26XStepper.spi_start()

SPI模式下電機開始運行。

TMC260資料下載

步進(jìn)電機驅(qū)動擴(kuò)展板原理圖下載
TMC260技術(shù)手冊下載
步進(jìn)電機驅(qū)動擴(kuò)展板庫文件下載

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多