久久午夜影院,91精品国产调教在线观看,日韩午夜免费,伊人久久大香线蕉av不卡

你的位置:首頁 > 電源管理 > 正文

聊一聊步進電機的幾件事

發(fā)布時間:2024-10-11 責任編輯:lina

【導讀】對于步進電機,每輸入一個脈沖信號,轉(zhuǎn)子就轉(zhuǎn)動一個角度或前進一步。其輸出的角位移或線位移與輸入的脈沖數(shù)成正比,轉(zhuǎn)速與脈沖頻率成正比。因此,步進電動機又稱脈沖電動機。


1. 什么是步進電機?

步進電機是一種將電脈沖信號轉(zhuǎn)換成相應角位移或線位移的電動機。

對于步進電機,每輸入一個脈沖信號,轉(zhuǎn)子就轉(zhuǎn)動一個角度或前進一步。其輸出的角位移或線位移與輸入的脈沖數(shù)成正比,轉(zhuǎn)速與脈沖頻率成正比。因此,步進電動機又稱脈沖電動機。

下面看一個簡單的雙極電機:


聊一聊步進電機的幾件事圖 1 雙極電機


雙極步進電機有四根電線和兩個線圈。要使其旋轉(zhuǎn),需要通過線圈發(fā)送電流。每根電線都需要能夠被高低驅(qū)動。以下是如何驅(qū)動電流使步進電機旋轉(zhuǎn)。


聊一聊步進電機的幾件事圖 2 雙極步進電機


要理解為什么這樣做,請考慮一個只有四個步驟的簡單步進電機。在第一階段,它將磁體與第一線圈對齊。下一步將磁體旋轉(zhuǎn)90度。通過第一線圈反向發(fā)送電流會反轉(zhuǎn)磁體極性。相反的線圈被連接,但相對于中心磁體產(chǎn)生相反的磁場。


聊一聊步進電機的幾件事圖 3 步進電機轉(zhuǎn)動四個步驟


當然,大多數(shù)步進電機的步數(shù)超過4步。你的標準步進電機每轉(zhuǎn)200步。以這種方式旋轉(zhuǎn)電機稱為全步進。一旦你完成了全步工作,半步是非常簡單的。你可以同時通過兩個線圈發(fā)送電流,這將使分辨率加倍。

步進電機驅(qū)動器也可以使用微步進,微步進調(diào)節(jié)通過線圈的電流。典型的電機控制器可以在每一個完整的步驟中執(zhí)行16個微步驟。一些芯片負責調(diào)制電流,但較舊的芯片需要為其驅(qū)動的步進電機“調(diào)諧”。微步進進一步將整個步進劃分為256微步進,使典型的200步進電機變成51200步進電機!微步進還降低了電機的噪音,使其運行更平穩(wěn)、更高效。


聊一聊步進電機的幾件事圖 4 完整步驟1和2之間的半步


2. 如何控制線圈中的電流:

控制通過繞組的電流的最常見設置是使用所謂的H橋。它是一組四個晶體管,可以將每條導線拉高或拉低。你也可以用MOS管代替晶體管,但布線會有點不同。該圖顯示了如何通過H橋向任意方向發(fā)送電流。你只需要打開路徑中的晶體管。


聊一聊步進電機的幾件事圖 5 線圈中的電流方向


你必須確保同一側(cè)的兩個晶體管不能同時導通。這將通過提供從電源到接地的低電阻路徑使電路短路。你還應注意,晶體管可能需要一段時間才能從接通切換到斷開。除非你知道自己在做什么,否則不建議快速切換通過線圈的電流。


聊一聊步進電機的幾件事圖 6 必須確保同一側(cè)的兩個晶體管不能同時導通


這仍然不是全貌。旋轉(zhuǎn)電機將產(chǎn)生電壓。為了保護晶體管,最好放置二極管。


聊一聊步進電機的幾件事圖 7 用于保護晶體管的二極管


這將防止電機產(chǎn)生高壓,這可能會破壞晶體管甚至驅(qū)動器。如果驅(qū)動步進電機的電壓高于MCU輸出的電壓,則需要添加另一個晶體管來控制PNP晶體管。


聊一聊步進電機的幾件事圖 8 使用另一個晶體管來控制PNP晶體管


當你打開額外的NPN晶體管時,它將允許電流從PNP晶體管的基極(引腳1)流出,從而打開它?,F(xiàn)在所需要的只是所有NPN晶體管基極上的限流電阻。


聊一聊步進電機的幾件事圖 9 NPN晶體管基極加上的限流電阻


就是這樣!該H橋?qū)⒖刂仆ㄟ^其中一個繞組的電流。由于有兩個繞組,我們需要將這個電路加倍。


聊一聊步進電機的幾件事圖 10 雙H橋驅(qū)動步進電機


現(xiàn)在,你可以很好地計算所需的組件。使用雙H橋并不是驅(qū)動步進電機的唯一方法。你也可以購買步進電機驅(qū)動器,它將內(nèi)置雙H橋(盡管驅(qū)動器通常使用MOS管和其他技巧)。如果你想減少BOM數(shù)量(有時獲得更多功能),我建議你看看步進電機驅(qū)動器。你需要查看數(shù)據(jù)表以了解芯片提供的功能。一些芯片只提供晶體管和二極管,而其他芯片則完全控制通過線圈的電流。

3. 微步進:


聊一聊步進電機的幾件事圖 11 脈寬調(diào)制信號


微步進包括向晶體管發(fā)送脈寬調(diào)制信號。這是一種控制電機線圈電流的簡單方法。預先選擇的PWM值被放置在正弦查找表中。典型地,選擇20-40kHz的PWM頻率。任何低于20千赫的聲音,人類耳朵都能聽到。頻率保持低于40kHz以提高效率并減少晶體管中的功耗。當PWM信號為高時,電流流過晶體管。當PWM信號低時,電流流過二極管。這是一個非常粗糙的微步進實現(xiàn),但它給出了它如何工作的一般概念。使用MOS管的電機驅(qū)動器可以控制電機電流降低或衰減的速度。驅(qū)動器的電流波形更像這樣:


聊一聊步進電機的幾件事圖 12 流經(jīng)MOS管電機驅(qū)動器的電流


必須為其驅(qū)動的電機手動優(yōu)化快速衰減周期和慢速衰減周期。一些新芯片會根據(jù)其感應到的電流自動調(diào)整衰減周期,但舊芯片可能需要優(yōu)化(或調(diào)整)。

4. 步進電機驅(qū)動實例

介紹板子:

實例:使用控制板Arduino Mega控制步進電機驅(qū)動板TMC5130-EVAL來驅(qū)動步進電機。


聊一聊步進電機的幾件事圖 13 使用Arduino Mega控制步進電機驅(qū)動板TMC5130-EVAL


控制器:Arduino Mega 2560是一款基于ATmega2560的微控制器板。它有54個數(shù)字輸入/輸出引腳(其中15個可以用作PWM輸出)、16個模擬輸入、4個UART(硬件串行端口)、一個16 MHz晶體振蕩器、一個USB連接、一個電源插座、一個ICSP頭和一個復位按鈕。它包含支持微控制器所需的一切;只需用USB電纜將其連接到計算機,或用交流到直流適配器或電池為其供電即可開始使用。

步進電機驅(qū)動板:TMC5130是一個完全集成的步進電機驅(qū)動器和控制器系統(tǒng),允許從任何微控制器遠程控制步進電機。它在硬件上實現(xiàn)了所有實時關鍵任務。一旦配置,電機可以通過給出目標位置、命令歸航序列或給出目標速度來驅(qū)動。使用TMC5130的好處包括:易于使用,使用256微步的電機精度,低電機噪聲(無噪聲隱藏斬波器),無傳感器失速檢測(stallGuard2),無階躍損耗,dcStep和coolStep、UART或SPI控制接口的高效率,高電壓范圍,小形狀因數(shù),以及低部件數(shù)量。

1. 確保Arduino Mega與TMC5130-EVAL有電壓匹配

如果Arduino是5V控制板,則必須將TMC5130-EVAL上的一個電阻從位置R3重新定位到R8。這將TMC5130的邏輯電平設置為+5V。

2. 連線


聊一聊步進電機的幾件事圖 14 TMC5130與Arduino Mega 2560連接 (圖片來源于Trinamic)


上圖的電纜顏色

+5V - >紅色
GND - >藍色
SDO - >黃色
SDI - >橙色
SCK - >白色
CSN - >灰色
DRV_ENN - >黑色
CLK16 - >綠色


聊一聊步進電機的幾件事圖 15 引腳對應的信號 (圖片來源于Trinamic)


引腳對應的信號。在Arduino代碼的注釋部分記錄了配置。

ARDUINO代碼

下面的Arduino代碼不需要任何額外的庫。SPI庫是Arduino IDE附帶的。該程序初始化TMC5130并執(zhí)行簡單的移動到位置周期。它將根據(jù)步進電機的接線將200全步進電機向一個方向旋轉(zhuǎn)10轉(zhuǎn),向另一個方向旋轉(zhuǎn)10轉(zhuǎn)。請使用TMC5130數(shù)據(jù)表或TMCL IDE作為不同寄存器的參考。

#include
#include "TMC5130_registers.h"

/* The trinamic TMC5130 motor controller and driver operates through an
* SPI interface. Each datagram is sent to the device as an address byte
* followed by 4 data bytes. This is 40 bits (8 bit address and 32 bit word).
* Each register is specified by a one byte (MSB) address: 0 for read, 1 for
* write. The MSB is transmitted first on the rising edge of SCK.
*
* Arduino Pins Eval Board Pins
* 51 MOSI 32 SPI1_SDI
* 50 MISO 33 SPI1_SDO
* 52 SCK 31 SPI1_SCK
* 25 CS 30 SPI1_CSN
* 17 DIO 8 DIO0 (DRV_ENN)
* 11 DIO 23 CLK16
* GND 2 GND
* +5V 5 +5V
*/

int chipCS = 25;
const byte CLOCKOUT = 11;
// const byte CLOCKOUT = 9;   --> Uncomment for UNO, Duemilanove, etc...
int enable = 17;

void setup() {
// put your setup code here, to run once:
pinMode(chipCS,OUTPUT);
pinMode(CLOCKOUT,OUTPUT);
pinMode(enable, OUTPUT);
digitalWrite(chipCS,HIGH);
digitalWrite(enable,LOW);

//set up Timer1
TCCR1A = bit (COM1A0); //toggle OC1A on Compare Match
TCCR1B = bit (WGM12) | bit (CS10); //CTC, no prescaling
OCR1A = 0; //output every cycle

SPI.setBitOrder(MSBFIRST);
SPI.setClockDivider(SPI_CLOCK_DIV8);
SPI.setDataMode(SPI_MODE3);
SPI.begin();

Serial.begin(9600);

sendData(0x80,0x00000000); //GCONF

sendData(0xEC,0x000101D5); //CHOPCONF: TOFF=5, HSTRT=5, HEND=3, TBL=2, CHM=0 (spreadcycle)
sendData(0x90,0x00070603); //IHOLD_IRUN: IHOLD=3, IRUN=10 (max.current), IHOLDDELAY=6
sendData(0x91,0x0000000A); //TPOWERDOWN=10

sendData(0xF0,0x00000000); // PWMCONF
//sendData(0xF0,0x000401C8); //PWM_CONF: AUTO=1, 2/1024 Fclk, Switch amp limit=200, grad=1

sendData(0xA4,0x000003E8); //A1=1000
sendData(0xA5,0x000186A0); //V1=100000
sendData(0xA6,0x0000C350); //AMAX=50000
sendData(0xA7,0x000186A0); //VMAX=100000
sendData(0xAA,0x00000578); //D1=1400
sendData(0xAB,0x0000000A); //VSTOP=10

sendData(0xA0,0x00000000); //RAMPMODE=0

sendData(0xA1,0x00000000); //XACTUAL=0
sendData(0xAD,0x00000000); //XTARGET=0
}

void loop()
{
// put your main code here, to run repeatedly:
sendData(0xAD,0x0007D000); //XTARGET=512000 | 10 revolutions with micro step = 256
delay(20000);
sendData(0x21,0x00000000);
sendData(0xAD,0x00000000); //XTARGET=0
delay(20000);
sendData(0x21,0x00000000);
}

void sendData(unsigned long address, unsigned long datagram)
{
//TMC5130 takes 40 bit data: 8 address and 32 data

delay(100);
uint8_t stat;
unsigned long i_datagram;

digitalWrite(chipCS,LOW);
delayMicroseconds(10);

stat = SPI.transfer(address);

i_datagram |= SPI.transfer((datagram >> 24) & 0xff);
i_datagram <<= 8;
i_datagram |= SPI.transfer((datagram >> 16) & 0xff);
i_datagram <<= 8;
i_datagram |= SPI.transfer((datagram >> 8) & 0xff);
i_datagram <<= 8;
i_datagram |= SPI.transfer((datagram) & 0xff);
digitalWrite(chipCS,HIGH);

Serial.print("Received: ");
PrintHex40(stat, i_datagram);
Serial.print(" ");
Serial.print(" from register: ");
Serial.println(address,HEX);
}

void PrintHex40(uint8_t stat, uint32_t data) // prints 40-bit data in hex with leading zeroes
{
char tmp[16];
uint16_t LSB = data & 0xffff;
uint16_t MSB = data >> 16;
sprintf(tmp, "0x%.2X%.4X%.4X", stat, MSB, LSB);
Serial.print(tmp);
}


代碼來源于:Trinamic 博客 (關于代碼的問題,可以去Trinamic博客上了解更多)

總結(jié):

希望這片文章,可以幫助您了解步進電機的工作原理以及如何驅(qū)動步進電機。同時驅(qū)動步進電機的技術已經(jīng)很成熟,善于利用現(xiàn)有的硬件和代碼,才能事半功倍。


免責聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯(lián)系小編進行處理。


推薦閱讀:

使用功率分析儀測量和分析電抗器(電感器)的方法

面向新太空應用的 DC-DC 轉(zhuǎn)換器

意法半導體公布2024年第三季度財報、電話會議及資本市場日直播時間

超小型VCSEL*反射式光電傳感器的應用潛力

【測試案例分享】提高信號完整性的秘密武器:實時示波器測試TDR阻抗的全新方案


特別推薦
技術文章更多>>
技術白皮書下載更多>>
熱門搜索

關閉

?

關閉

久久午夜影院,91精品国产调教在线观看,日韩午夜免费,伊人久久大香线蕉av不卡
久久国产视频网| 日本在线不卡视频| 亚洲一区有码| 日韩av免费| 岛国精品一区| 涩涩av在线| 亚洲精品88| 欧美不卡高清一区二区三区| 天堂√8在线中文| 色老板在线视频一区二区| 国产手机视频一区二区| 久久国产精品色av免费看| 国产精成人品2018| 高清av不卡| 亚洲一本视频| 男人天堂欧美日韩| 在线免费观看亚洲| 欧美精品三级在线| 久久精品国产www456c0m| 欧美一级精品| 免费观看在线综合| 夜鲁夜鲁夜鲁视频在线播放| 亚洲另类视频| 久久在线免费| 久久精品二区亚洲w码| 尤物在线精品| 成人一区而且| 综合激情网站| 久久成人国产| 精品国产欧美日韩| 国产亚洲福利| 蜜桃视频一区二区三区| 无码日韩精品一区二区免费| 91精品视频一区二区| 日韩avvvv在线播放| 国产精品久久久一区二区| 黄色网一区二区| 日韩视频一区| 国产精品一在线观看| 日韩黄色av| 欧美+亚洲+精品+三区| 精品亚洲a∨一区二区三区18| 国产欧美日韩一级| 日韩精品高清不卡| 久久亚洲色图| 亚洲婷婷免费| 久久精品福利| 91国内精品| 91精品国产自产观看在线| 91久久在线| 最近高清中文在线字幕在线观看1| 欧美日本二区| 国产高潮在线| 国产综合亚洲精品一区二| 99热国内精品| 极品日韩av| 玖玖玖国产精品| 婷婷精品在线| 日韩精品五月天| 私拍精品福利视频在线一区| 日韩精品免费一区二区三区| 亚洲一区二区三区免费在线观看 | 视频一区二区国产| 亚洲综合国产| 久久av网址| 99re国产精品| 精品日本视频| 亚洲区欧美区| 精品三级久久| 国产精品毛片视频| 午夜影院一区| 久久精品国产大片免费观看| 性欧美长视频| 欧美私人啪啪vps| 国产麻豆精品久久| 精品国产欧美日韩| 精品国产亚洲一区二区三区大结局| 欧美精品国产一区| 日韩高清成人在线| 久久免费高清| 欧美日韩伊人| 久久久久.com| 国产精品日韩精品在线播放| 日韩精品第一区| 六月婷婷一区| 日韩精品一卡| 国产一区调教| 久久国产三级精品| 另类亚洲自拍| 亚洲精品.com| 日韩精品1区2区3区| 亚洲综合五月| 国产精东传媒成人av电影| 91精品国产乱码久久久久久久 | 日韩精品首页| 欧美在线精品一区| 亚洲深爱激情| 亚洲va中文在线播放免费| 久久99精品久久久野外观看| 亚洲人成亚洲精品| 红桃视频国产一区| 久久裸体视频| 欧美69视频| 欧美国产亚洲精品| 国产视频一区三区| 妖精视频成人观看www| 欧洲亚洲一区二区三区| 精品入口麻豆88视频| 免费日本视频一区| 蜜桃一区二区三区在线观看| 免费一二一二在线视频| 久久a爱视频| 国产精品调教视频| 国产亚洲精品美女久久久久久久久久| 在线日韩欧美| 伊人网在线播放| 91超碰国产精品| 午夜在线精品偷拍| 免费观看亚洲| 99riav1国产精品视频| 首页国产欧美日韩丝袜| 亚洲一区二区免费在线观看| 亚洲三级毛片| 麻豆91精品91久久久的内涵| 日韩欧美在线中字| 久久精品国产99国产精品| 亚洲精品日本| 中文在线а√天堂| 91精品在线观看国产| 四虎国产精品免费久久| 国产伊人久久| 国产精品tv| 欧美日韩在线网站| 精品国产免费人成网站| av资源中文在线| 欧美色图一区| 日韩中文字幕一区二区三区| 天堂久久av| 国产欧美一区二区色老头| 久久99影视| 中文字幕在线高清| 国语精品一区| 国产乱人伦丫前精品视频| 国产日韩欧美高清免费| 91一区二区| 亚洲视频二区| 久久伊人亚洲| 国产精品婷婷| 国产另类在线| 日韩高清中文字幕一区二区| 成人午夜精品| 日本va欧美va精品发布| 日韩av在线播放网址| 午夜欧美视频| 日韩va亚洲va欧美va久久| 国产精品久久久久久久久久白浆| 国产在线看片免费视频在线观看| 日韩专区一卡二卡| 精品黄色一级片| 亚洲无线一线二线三线区别av| 亚洲精品欧美| 久久久水蜜桃av免费网站| 欧美精品中文字幕亚洲专区| 精品一区二区三区的国产在线观看| 久久一区视频| 国产精品www.| 久久永久免费| 亚洲tv在线| 国产伦精品一区二区三区视频| 日韩欧美中文在线观看| 久久国产尿小便嘘嘘| 色婷婷亚洲mv天堂mv在影片| 石原莉奈在线亚洲二区| 福利在线一区| 日本久久黄色| 亚洲综合电影| 免费日韩av片| 欧美一区网站| 精品日韩一区| 不卡中文一二三区| 亚洲精品高潮| 97精品一区| 久久国产精品久久久久久电车| 国产偷自视频区视频一区二区| 久久国产精品毛片| 久久精品国产99久久| 国产精品久久久久久久免费观看 | 日韩高清中文字幕一区二区| 日韩一区网站| 亚洲日本免费电影| 免费国产亚洲视频| 欧美在线亚洲| 丝袜av一区| 亚洲午夜av| 亚洲精品日本| 欧美视频精品全部免费观看| 日韩综合一区二区| 日本不卡高清| 鲁大师精品99久久久| 黄毛片在线观看|