哆啦a梦为什么没有耳朵| 脑动脉硬化是什么意思| 降血脂吃什么最好| 平均血小板体积低是什么原因| 胃胀腹胀吃什么药| 藿香泡水喝有什么好处| 女性漏尿是什么原因| 转氨酶偏高有什么症状| 耳朵一直痒是什么原因| 女人能日到什么时候| 经常拉肚子是什么原因引起的| pos是什么意思| 戒烟后为什么会发胖| 坐骨神经痛吃什么药好得快| 阴囊潮湿吃什么食物| 宝宝积食吃什么药| 猴子屁股为什么是红色| 手指麻木是什么病的前兆| 炎细胞浸润是什么意思| 简单是什么意思| 成吉思汗姓什么| 血珀五行属什么| zara是什么品牌| 尿酸高吃什么药好| 九二共识是什么| 女性肝囊肿要注意什么| 验孕棒什么时候测| 老年人适合吃什么水果| 炖大骨头放什么调料| 甲亢有些什么症状| 为什么会莫名其妙流鼻血| 孕妇无创检查是什么| 肚脐下方是什么器官| 更年期吃什么药| 愚者是什么意思| 吃姜对身体有什么好处| 皮肤越抓越痒是什么原因| 9月份有什么节日| 经血是什么血| 咨询是什么意思| 发烧为什么不能吃鸡蛋| 叫舅舅的是什么关系| 兔爷是什么意思| 侯亮平是什么级别| 硝酸咪康唑乳膏和酮康唑乳膏有什么区别| 包皮手术是什么| 水煮肉片放什么配菜| 口苦是什么原因引起的| 覆盆子是什么东西| 什么是指标| 乳酸堆积是什么意思| 早教是做什么的| 一天什么时候最热| 梦见钓到大鱼是什么意思| 苦荞茶有什么作用| 吃什么东西增强免疫力| 猫砂是什么材料做的| 低血压平时要注意什么| 手指头痒是什么原因| 鳕鱼是什么鱼| 眼屎多用什么眼药水好| 拉肚子吃什么药| 流虚汗是什么原因| 玉的主要成分是什么| 地黄是什么| 宜破屋是什么意思| 菌痢的症状是什么样| 门客是什么意思| 俄罗斯和白俄罗斯有什么区别| 汀是什么意思| 龟头炎的症状是什么样| 内分泌代谢科是看什么病的| 鱼油有什么副作用| 花魁是什么意思| 甲状腺结节吃什么食物好| 排黑便是什么原因| 脖子长痘痘是什么原因| 科技皮是什么皮| 神阙穴在什么位置| 酒不醉人人自醉是什么意思| 蓟类植物是什么| 酸儿辣女什么意思| 油腻是什么意思| 早谢是什么症状| 阴唇为什么一大一小| 葡萄不能和什么一起吃| 重度贫血是什么原因引起的| 肝fnh是什么病| 水晶眼镜对眼睛有什么好处| 当归长什么样的图片| 隔空打牛是什么意思| 肉桂和桂皮有什么区别| 大便干燥拉不出来是什么原因| 想怀孕需要检查什么项目| 六月十二日是什么日子| 小知了叫什么| 农历7月25日是什么星座| 竖心旁的字与什么有关| 马尿是什么意思| 79年出生属什么生肖| 南通有什么大学| 甲亢吃什么| 喝脱脂牛奶有什么好处| 热疹用什么药膏最好| 心机血缺血吃什么药最好| 金项链断了有什么预兆| 什么的什么是什么的伞| 眼睛老是流眼泪是什么原因| 烫发对身体有什么危害| 天秤和什么星座最配| 送百合花代表什么意思| kako是什么牌子| 血糖高忌吃什么| 至死不渝什么意思| 吃维生素a有什么好处| 人类的祖先是什么生肖| 幽门螺杆菌吃什么药最好| nt检查需要注意什么| 上环什么时候去最合适| 姨妈可以吃什么水果| 中医减肥挂什么科| 白带什么时候来| p是什么单位| 为什么不嫁丧妻之男| 胎毒是什么| 颈椎病看什么科| 乡和镇有什么区别| 什么都不做| 左边头疼是什么原因怎么办| 胎盘老化对胎儿有什么影响| 梁伟文 为什么叫林夕| 郭字五行属什么| 梧桐叶像什么| 棕色眼睛的人什么血统| 乳糖不耐受是什么原因导致的| 疣是什么病| 进展是什么意思| 第一次表白送什么花| 谷氨酰基转移酶高是什么原因| 胃糜烂是什么原因引起的| 主食是什么意思| 乳腺囊实性结节是什么意思| 十二指肠溃疡是什么原因引起的| 老年人生日送什么礼物| 扳机指是什么原因造成的| 血栓吃什么药可以疏通血管| 幽门螺杆菌感染有什么症状和表现| 皮蛋与什么食物相克| 胰岛素是什么| 老是嗜睡是什么原因| 条索灶是什么意思| 梦到自己怀孕了是什么预兆| 解绑是什么意思| 我要控制我自己是什么歌| 月经推迟是什么原因| diff什么意思| 西兰花是什么季节的蔬菜| 来月经有异味什么原因| 强的松又叫什么名字| 女人吃桃子有什么好处和坏处| speedo是什么牌子| 三阳开泰是什么生肖| 高沫是什么茶| 手黄是什么原因| 孕酮是什么意思| 什么叫阴虚| 死刑是什么意思| 万岁是什么意思| 心五行属什么| 癫痫病吃什么药最好| 多动症是什么引起的| 见红是什么意思| 死而什么什么| 男人结扎对身体有什么影响| 鸭子吃什么| 前列腺是什么原因引起的| 品牌主理人是什么意思| 氟斑牙是什么原因造成的| 腰椎退行性改变是什么意思| 扁桃体肿大吃什么药| 什么是巨细胞病毒| 亲嘴为什么要伸舌头| 跟腱炎挂什么科| 更年期什么时候结束| 为什么会拉水| 什么茶可以减肥消脂| 老人吃饭老是噎着是什么原因| 讥讽的笑是什么笑| 心灵手巧什么意思| 喉咙痛吃什么药好得最快| 毒血症是什么病| gxg是什么牌子| 1947年属什么| 无名指长痣代表什么| chevy是什么车| 风热感冒吃什么药最好| etf什么意思| 双侧腋窝淋巴结可见什么意思| 护理学是干什么的| 牛奶什么时间喝最佳| 什么病不能吃核桃| 梦见自己掉牙是什么意思| 吃什么去湿气最快最有效| 食管反流什么症状| 咳嗽适合吃什么水果| 手足口病吃什么药好得快| 6月5号是什么星座的| 伊朗用什么货币| 叒怎么读音是什么意思| 皮炎是什么原因引起的| 侄女叫我什么| 1974年属虎的是什么命| 幽门螺旋杆菌挂什么科| 被蜜蜂蛰了用什么药| 1978属什么| 孙尚香字什么| 咪咪是什么| 看山不是山看水不是水是什么意思| 什么是补铁的食物| 干燥症是什么原因引起的| 侏儒是什么意思| 精神病吃什么药| 胃息肉吃什么好| 伥鬼是什么意思| 奇经八脉指的是什么| 心颤是什么症状| 紫荆花的花语是什么| kailas是什么牌子| 来月经为什么会肚子痛| 一柱擎天什么意思| 周六左眼跳是什么预兆| 藏红花和什么一起泡水喝效果好| 嘴唇干燥是什么原因| 甘油三脂是什么| 春梦是什么意思| 胆管堵塞有什么症状| 西楼是什么意思| 浑身没力气是什么原因| 额头长痘什么原因| 吃什么补气最快| 梭是什么意思| 鼻子里流出黄水是什么原因| 肺肿瘤有什么症状| 女人烂桃花多说明什么| 十月十二号是什么星座| 什么是县级市| 高血压1级是什么意思| 肛周脓肿用什么药| 刷酸什么意思| 梦见发大水是什么意思| 大腿后侧肌肉叫什么| 查血压高挂什么科室| 手抖吃什么药最好| 什么酒好喝| 三七花泡水喝有什么功效| 丁卡是什么药| 非溶血是什么意思| 哀莫大于心死什么意思| 淋巴细胞偏低是什么原因| 检查包皮挂什么科| 让我随你去让我随你去是什么歌| 心率高吃什么药| 来例假头晕是什么原因| 武汉都有什么大学| 百度

还搞不懂步进电机?一定要看这一文,工作原理+驱动方法

工控自动化 时间:2025-08-04来源:李工谈元器件
百度 因此,车和家从创立之初就确定了必须由自己完整研发整个智能系统与服务的路线,并储备了大量的相关人才。

今天给大家分享的是:步进电机及其工作原理。

一、什么是步进电机?

步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机。

对于步进电机,每输入一个脉冲信号,转子就转动一个角度或前进一步。其输出的角位移或线位移与输入的脉冲数成正比,转速与脉冲频率成正比。因此,步进电动机又称脉冲电动机。

下面看一个简单的双极电机:

双极电机

双极步进电机有四根电线和两个线圈。要使其旋转,需要通过线圈发送电流。每根电线都需要能够被高低驱动。以下是如何驱动电流使步进电机旋转。

1721195638174236.jpg

双极步进电机

要理解为什么这样做,请考虑一个只有四个步骤的简单步进电机。在第一阶段,它将磁体与第一线圈对齐。下一步将磁体旋转90度。通过第一线圈反向发送电流会反转磁体极性。相反的线圈被连接,但相对于中心磁体产生相反的磁场。

步进电机转动四个步骤

当然,大多数步进电机的步数超过4步。你的标准步进电机每转200步。以这种方式旋转电机称为全步进。一旦你完成了全步工作,半步是非常简单的。你可以同时通过两个线圈发送电流,这将使分辨率加倍。

步进电机驱动器也可以使用微步进,微步进调节通过线圈的电流。典型的电机控制器可以在每一个完整的步骤中执行16个微步骤。一些芯片负责调制电流,但较旧的芯片需要为其驱动的步进电机“调谐”。

微步进进一步将整个步进划分为256微步进,使典型的200步进电机变成51200步进电机!微步进还降低了电机的噪音,使其运行更平稳、更高效。

完整步骤1和2之间的半步

二、如何控制线圈中的电流

控制通过绕组的电流的最常见设置是使用所谓的H桥。它是一组四个晶体管,可以将每条导线拉高或拉低。你也可以用MOS管代替晶体管,但布线会有点不同。该图显示了如何通过H桥向任意方向发送电流。你只需要打开路径中的晶体管。

线圈中的电流方向

你必须确保同一侧的两个晶体管不能同时导通。这将通过提供从电源到接地的低电阻路径使电路短路。你还应注意,晶体管可能需要一段时间才能从接通切换到断开。除非你知道自己在做什么,否则不建议快速切换通过线圈的电流。

必须确保同一侧的两个晶体管不能同时导通

这仍然不是全貌。旋转电机将产生电压。为了保护晶体管,最好放置二极管。

用于保护晶体管的二极管

这将防止电机产生高压,这可能会破坏晶体管甚至驱动器。如果驱动步进电机的电压高于MCU输出的电压,则需要添加另一个晶体管来控制PNP晶体管。

使用另一个晶体管来控制PNP晶体管

当你打开额外的NPN晶体管时,它将允许电流从PNP晶体管的基极(引脚1)流出,从而打开它。现在所需要的只是所有NPN晶体管基极上的限流电阻。

NPN晶体管基极加上的限流电阻

就是这样!该H桥将控制通过其中一个绕组的电流。由于有两个绕组,我们需要将这个电路加倍。

双H桥驱动步进电机

现在,你可以很好地计算所需的组件。使用双H桥并不是驱动步进电机的唯一方法。你也可以购买步进电机驱动器,它将内置双H桥(尽管驱动器通常使用MOS管和其他技巧)。如果你想减少BOM数量(有时获得更多功能),我建议你看看步进电机驱动器。你需要查看数据表以了解芯片提供的功能。一些芯片只提供晶体管和二极管,而其他芯片则完全控制通过线圈的电流。

三、微步进

脉宽调制信号

微步进包括向晶体管发送脉宽调制信号。这是一种控制电机线圈电流的简单方法。预先选择的PWM值被放置在正弦查找表中。典型地,选择20-40kHz的PWM频率。任何低于20千赫的声音,人类耳朵都能听到。

频率保持低于40kHz以提高效率并减少晶体管中的功耗。当PWM信号为高时,电流流过晶体管。当PWM信号低时,电流流过二极管。这是一个非常粗糙的微步进实现,但它给出了它如何工作的一般概念。使用MOS管的电机驱动器可以控制电机电流降低或衰减的速度。驱动器的电流波形更像这样:

流经MOS管电机驱动器的电流

必须为其驱动的电机手动优化快速衰减周期和慢速衰减周期。一些新芯片会根据其感应到的电流自动调整衰减周期,但旧芯片可能需要优化(或调整)。

四、步进电机驱动实例

实例:使用控制板Arduino Mega控制步进电机驱动板TMC5130-EVAL来驱动步进电机。

使用 Arduino Mega 控制步进电机驱动板 TMC5130-EVAL

控制器:

Arduino Mega 2560是一款基于ATmega2560的微控制器板。它有54个数字输入/输出引脚(其中15个可以用作PWM输出)、16个模拟输入、4个UART(硬件串行端口)、一个16 MHz晶体振荡器、一个USB连接、一个电源插座、一个ICSP头和一个复位按钮。

它包含支持微控制器所需的一切;只需用USB电缆将其连接到计算机,或用交流到直流适配器或电池为其供电即可开始使用。

步进电机驱动板:

TMC5130是一个完全集成的步进电机驱动器和控制器系统,允许从任何微控制器远程控制步进电机。它在硬件上实现了所有实时关键任务。一旦配置,电机可以通过给出目标位置、命令归航序列或给出目标速度来驱动。

使用TMC5130的好处包括:易于使用,使用256微步的电机精度,低电机噪声(无噪声隐藏斩波器),无传感器失速检测(stallGuard2),无阶跃损耗,dcStep和coolStep、UART或SPI控制接口的高效率,高电压范围,小形状因数,以及低部件数量。

1、 确保Arduino Mega与TMC5130-EVAL有电压匹配

如果Arduino是5V控制板,则必须将TMC5130-EVAL上的一个电阻从位置R3重新定位到R8。这将TMC5130的逻辑电平设置为+5V。

2、连线

TMC5130与Arduino Mega 2560连接 (图片来源于Trinamic)

上图的电缆颜色:

引脚对应的信号 (图片来源于Trinamic)

引脚对应的信号。在Arduino代码的注释部分记录了配置。

3、ARDUINO代码

下面的Arduino代码不需要任何额外的库。SPI库是Arduino IDE附带的。该程序初始化TMC5130并执行简单的移动到位置周期。它将根据步进电机的接线将200全步进电机向一个方向旋转10转,向另一个方向旋转10转。请使用TMC5130数据表或TMCL IDE作为不同寄存器的参考。

#include <SPI.h>#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 Timer1TCCR1A = bit (COM1A0); //toggle OC1A on Compare MatchTCCR1B = bit (WGM12) | bit (CS10); //CTC, no prescalingOCR1A = 0; //output every cycleSPI.setBitOrder(MSBFIRST);
SPI.setClockDivider(SPI_CLOCK_DIV8);
SPI.setDataMode(SPI_MODE3);
SPI.begin();

Serial.begin(9600);

sendData(0x80,0x00000000); //GCONFsendData(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=6sendData(0x91,0x0000000A); //TPOWERDOWN=10sendData(0xF0,0x00000000); // PWMCONF//sendData(0xF0,0x000401C8); //PWM_CONF: AUTO=1, 2/1024 Fclk, Switch amp limit=200, grad=1sendData(0xA4,0x000003E8); //A1=1000sendData(0xA5,0x000186A0); //V1=100000sendData(0xA6,0x0000C350); //AMAX=50000sendData(0xA7,0x000186A0); //VMAX=100000sendData(0xAA,0x00000578); //D1=1400sendData(0xAB,0x0000000A); //VSTOP=10sendData(0xA0,0x00000000); //RAMPMODE=0sendData(0xA1,0x00000000); //XACTUAL=0sendData(0xAD,0x00000000); //XTARGET=0}void loop(){// put your main code here, to run repeatedly:sendData(0xAD,0x0007D000); //XTARGET=512000 | 10 revolutions with micro step = 256delay(20000);
sendData(0x21,0x00000000);
sendData(0xAD,0x00000000); //XTARGET=0delay(20000);
sendData(0x21,0x00000000);
}void sendData(unsigned long address, unsigned long datagram){//TMC5130 takes 40 bit data: 8 address and 32 datadelay(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("n");
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博客上了解更多)

以上就是关于步进电机的介绍,希望大家多多支持我。

关键词: 步进电机 电机控制

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版
飞机什么东西不能带 恬静是什么意思 bjd是什么 指甲盖有竖纹是什么原因 屁特别多是什么原因
h型高血压什么意思 痰多吃什么化痰 如期而至是什么意思 塑料是什么材质 男人眉心有痣代表什么
12月13日是什么日子 一什么石子 姐姐的老公叫什么 什么是白条 打呼噜挂什么科
荣辱与共是什么生肖 什么哈欠 额头上长痘痘是什么原因引起的 血型b型rh阳性是什么意思 孕妇梦见鬼是什么预兆
输卵管造影什么时候检查最好hcv8jop8ns2r.cn 公蚊子吃什么hkuteam.com 绝经什么意思hcv8jop4ns6r.cn 脂肪肝用什么药hcv9jop6ns9r.cn 7月13日是什么日子beikeqingting.com
什么叫美尼尔综合症hcv9jop2ns6r.cn 三虫念什么hcv9jop0ns9r.cn 玉溪烟属于什么档次hcv8jop1ns4r.cn 毛囊炎用什么洗发水hcv9jop0ns4r.cn 蕈是什么意思hcv9jop5ns3r.cn
感冒有什么症状hcv8jop4ns6r.cn 梦见莲藕是什么意思hcv9jop3ns7r.cn 指甲是白色的是什么原因hcv9jop0ns2r.cn 甲状腺弥漫性改变是什么意思hcv7jop6ns0r.cn 七喜是什么饮料hcv9jop5ns6r.cn
卷柏属于什么植物hcv8jop5ns5r.cn 淋巴结是什么原因引起的hcv8jop2ns9r.cn 喉咙干燥吃什么药hcv8jop1ns9r.cn 乌龟用什么呼吸hcv9jop0ns7r.cn 尿酸偏低是什么原因hcv8jop6ns3r.cn
百度