是两相步进电机驱动器四线的.这个能不能买个驱动器,连接到树莓派

国外经典:H桥电机驱动原理与应用 - STM32/STM8技术论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
国外经典:H桥电机驱动原理与应用
助理工程师
10:45:44  
H桥电机驱动原理与应用
原著:吉姆布朗 1998年4月
整理上传:鲍勃乔丹 2002年9月
翻译:韦文潮 2007年12月
我们首先来看马达是如何转动的呢?举个例子:你手里拿着一节电池,用导线将马达和电池两端对接,马达就转动了;然后如果你把电池极性反过来会怎么样呢?没有错,马达也反着转了。
OK,这个是最基本的了。现在假设你想用一块指甲盖大小的微控制芯片(MCU)。你又如何控制马达的呢?首先,你手上有一个固态的状态开关——一个晶体管——来控制马达的开关。
提示:如果你用继电器连接这些电路的时候,要在继电器线圈两端并一个二极管。这是为了保护电路不被电感的反向电动势损坏。二极管的正极(箭头)要接地,负极要接在MCU连接继电器线圈的输出端上。
T2NVXjXfBaXXXXXXXX_!!.jpg (19.37 KB, 下载次数: 9)
10:44 上传
电路连接好后,你可以用一个逻辑输出的信号来控制马达了。高电平(逻辑1)让继电器导通,马达转动;低电平(逻辑0)让继电器断开,马达停止。
T2omtdXbrWI0NXXXXX_!!.jpg (70.97 KB, 下载次数: 13)
10:44 上传
在电路相同的情况下,把马达的“极性”反过来接,我们可以控制马达的翻转和停止。
问题来了:如果我们要同时需要马达能够正转好反转,怎么办?难道每次都要把马达的连线反过来接?
我们先来看另一个概念:马达速度。当我们在其中一种状态下,频繁的切换开关状态的时候,马达的转速就不再是匀速,而是变化的了,相应的扭矩也会改变。通常反应出来的是马达速度的变化。
我们想要同时控制正反向的话,就需要更多的电路——没错,就是H桥电路。H桥电路的“H”的意思是它实际电路在电路图上是一个字幕H的样式。下图就是一个用继电器连接成的H桥电路。
处于“高”位置的继电器是控制电源流入的方向,称之为“源”电路;处于“低”位置的继电器是控制电源流入地的方向,称之为“漏”电路。
T2ymtdXdP5I0NXXXXX_!!.jpg (32.95 KB, 下载次数: 4)
10:44 上传
现在,你将左上电路(A)和右下电路(D)接通,马达就正转了(如下图)。此时各个端口的逻辑值为A-1、B-0、C-0、D-1.
T2r9tdXhvZI0NXXXXX_!!.jpg (45.32 KB, 下载次数: 8)
10:44 上传
将逻辑值反过来,电路的方向就调转了,马达反转(如下图)。此时逻辑值为A-0、B-1、C-1、D-0。
T2s9tdXfb2I0NXXXXX_!!.jpg (40.2 KB, 下载次数: 0)
10:44 上传
注意:千万不能将同一侧的两个电路同时接通,否则会在电源和地之间形成短路。比如A和C或者B和D同时为1.
半导体H桥:现在我们来讨论使用场效应管连接的H桥。
这是我们实际使用的H桥电路的真正形式。我们现在不需要在继电器两端接二极管了,不过还是要在控制管两端接。下图是电路图。
在图上我们看到晶体管代替了继电器。在高位的晶体管必须是PNP型三极管或者P沟道场效应管;低位的晶体管必须是NPN型三极管或者N沟道型场效应管。
T2pCtdXnPWI0NXXXXX_!!.jpg (37.18 KB, 下载次数: 4)
10:44 上传
如果你将两个高位电路或者两个低位电路同时接通,你的马达会自动制动。这是因为当没有电源供给时,马达在自由转动的情况下是处于发电状态,同位的电路接通,相当于将马达的两端“短接”,那么马达会因为短路而相当与接了一个无限大功率的电炉即一个很大的负载,所以马达就会产生“电”制动;当你把马达两端悬空后,它就恢复自由了。
为了以避免马达的反电动势的危害,我们仍然需要在晶体管两端接二极管,因为马达线圈在电路开闭瞬间产生的反向电动势通过会高过电源,这样对晶体管和电路会有很大的影响甚至烧毁零件。
T2xCtdXnP4I0NXXXXX_!!.jpg (36.48 KB, 下载次数: 8)
10:44 上传
半导体晶体管本身有导通电阻,在通过大电流时会明显发热,如果没有散热措施会很容易烧毁。这样就会限制电路功率的增加。
Mosfets(金属氧化物半导体场效应晶体管),这里简称MOS管,由于结构和原理的不同,导通电阻远比普通三极管低,允许流过更大的电流。而且MOS管都内置有反向二极管来保护管子本身。所以采用MOS管连接H桥不但效率可以提高,电路也可以简化。
使用MOS管搭建H桥,高位电路要用P沟道管;低位要用N沟道管。因为N沟道管比P沟道管便宜的多,所以有人用N沟道管在高位,加上削波电路来抑制反电动势。
应用H桥的关键是四个电路开闭状态的准确。一旦在电源和地之间出现通路,毫无疑问会立刻产生短路,让你的晶体管变成一枚小炸弹。下面我们介绍一些H桥的集成电路,这样我们可以更容易更安全的使用H桥。
常用H桥集成电路
L293内置两个H桥,每个桥提供1A的额定工作电流,和最大2A的峰值电流。它能驱动的马达一般是不超过35毫米照片胶卷筒大小。
L298内置两个H桥,每个桥提供1A的额定工作电流,和最大3A的峰值电流。它能驱动的马达不超过可乐罐大小。
LMD18200内置1个H桥,工作电流2~3A,峰值电流6A。它驱动可乐罐大小的马达。
当然还有很多H桥集成电路,这里就不一一介绍了。
好了!关于马达和H桥我们就说到这里了,祝你玩得愉快!
请访问DPRG H-Bridge Project,获取更多H桥DIY的详细资源。
L298集成电路应用实验原著:吉姆布朗 1998年4月
整理上传:NCC 2002年8月
翻译:韦文潮 2007年12月
本电路实验主要使用一片L298加上1000微法电容和12个二极管。目的是制作一个便携式的两路马达驱动电路,提供微处理器控制接口。该L298应用电路的设计者是克莱迪蒙。
电路板只需要单面覆铜板即可,在元件面可以印刷加上接口说明和元件引线说明。
T2z9tdXgf6I0NXXXXX_!!.jpg (43.63 KB, 下载次数: 13)
10:44 上传
T2tmtdXnb2I0NXXXXX_!!.jpg (39.69 KB, 下载次数: 8)
10:44 上传
T2xmtdXnn4I0NXXXXX_!!.jpg (36.43 KB, 下载次数: 8)
10:44 上传
说明:L298的1、2端控制马达A的开关、正反,enable A 控制脉宽;3、4端和enable B控制马达B。
该电路图版权遵照第二版或者以上的通用公共授权(GNU GPL),任何人可以将此电路应用与任何场合、任何用途,并不受限制的修改或者改进,这些修改或改进同样对所有人公开。
机器人基地推出的产品:
Arduino 双H桥直流电机驱动板 步进电机驱动板 机器人配件
T2zmtdXnD5I0NXXXXX_!!.jpg (55.98 KB, 下载次数: 4)
10:44 上传
双H桥直流电机驱动板功能图解
& && &&&LKV-HM3.0双H桥直流电机驱动板采用ST公司的L298N典型双H桥直流电机驱动芯片,可用于驱动直流电机或双极性步进电机,此驱动板体积小,重量轻,具有强大的驱动能力:2A的峰值电流和46V的峰值电压;外加续流二极管可防止电机线圈在断电时的反电动势损坏芯片;虽然芯片过热时具有自动关断功能,但安装散热片使芯片温度降低,让驱动性能更加稳定;板子设有2个电流反馈检测接口、内逻辑取电选择端、4个上拉电阻选择端、2路直流电机接口和四线两相步进电机接口、控制电机方向指示灯、4个标准固定安装孔。此驱动板适用于智能程控小车、轮式机器人等,可配合各种控制器使用,帮你实现机器人DIY梦想。
L298N典型双H桥直流电机驱动芯片
设置电流反馈检测接口实现电流控制
电机方向指示灯方便程序调试
控制信号输入接口分开准确控制电机
逻辑部分电源可选择板内取电
高亮逻辑部分电源指示灯
优质接线端子电源接线牢固
四线两相步进电机接口
镀金加厚板量产现货供应(09最新版)产品参数:1.驱动芯片:L298N双H桥直流电机驱动芯片2.驱动部分端子供电范围Vs:+5V~+46V3.驱动部分峰值电流Io:2A4.逻辑部分端子供电范围Vss:+5V~+7V(可板内取电+5V)5.逻辑部分工作电流范围:0~36mA6.控制信号输入电压范围:
& &低电平:-0.3V≤Vin≤1.5V
& &高电平:2.3V≤Vin≤Vss7.使能信号输入电压范围:
& &低电平:-0.3≤Vin≤1.5V(控制信号无效)
& &高电平:2.3V≤Vin≤Vss(控制信号有效)8.最大功耗:25W(温度T=75℃时)9.正常工作温度:-25℃~+130℃10.驱动板尺寸:60mm×54mm11.驱动板重量:32g12.其他扩展:特设电流反馈检测接口、控制方向指示灯、上拉电阻选择接口、逻辑部分板内取电接口。
等待验证会员
15:08:52  
噢噢噢噢噢噢噢噢,这样啊啊
21:45:53  
谢谢,一直对各种驱动电路感兴趣
16:14:35  
写的很好!学习学习
14:41:04  
谢谢楼主的分享
11:45:02  
感谢楼主的分享!!!!
12:52:32  
谢谢楼主分享& && &
工程师职场
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司四相五线步进电机
进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。你可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时你也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
下面这个就是本次实验使用的步进电机工业使用的步进电机与本次实验使用的不同,下面图式两种不同款式的工业用步进电机使用步进电机前一定要仔细查看说明书,确认是四相还是两相,各个线怎样连接,本次实验使用的步进电机是四相的,不同颜色的线定义如下图:下面是电机的端口结构图,1,3为一组,2,4为一组,5号是共用的VCC。因本次使用的步进电机功率很小,所以可以直接使用一个ULN2003芯片进行驱动,如果是大功率的步进电机,是需要对应的驱动板的。ULN2003 是高耐压、大电流复合晶体管阵列,由七个硅NPN 复合晶体管组成。可以用来驱动步进电机。
其结构图如下硬件连接图如下把代码下载到arduino控制板中看看效果
/* * 步进电机跟随电位器旋转 * (或者其他传感器)使用0号模拟口输入 * 使用arduino IDE自带的Stepper.h库文件 */ #include &Stepper.h& // 这里设置步进电机旋转一圈是多少步#define STEPS 100 // attached to设置步进电机的步数和引脚Stepper stepper(STEPS, 8, 9, 10, 11); // 定义变量用来存储历史读数int previous = 0; void setup(){
// 设置电机每分钟的转速为90步
stepper.setSpeed(90);} void loop(){
// 获取传感器读数
int val = analogRead(0);
// 移动步数为当前读数减去历史读数
stepper.step(val - previous);
// 保存历史读数
previous =}
前几天我也试验了一下,用的是28BYJ-48 Stepper Motor 12V+ULN2003APG
改了改一个代码,现在的效果是电位计控制正反转
/* This program drives a unipolar or bipolar stepper motor. The motor is attached to digital pins 8 - 11 of the Arduino.Created 11 Mar. 2007Modified 30 Nov. 2009by Tom Igoe*/#include &Stepper.h&const int stepsPerRevolution = 64;
// change this to fit the number of steps per revolution for your motor// initialize the stepper library on pins 8 through 11:Stepper myStepper(stepsPerRevolution, 8,9,10,11);
const int aInPin=A0;void setup() {
// set the speed at 60 rpm:
myStepper.setSpeed(200);
// initialize the serial port:
Serial.begin(9600);}void loop() {
val=analogRead(aInPin);
val=map(val,0,);
Serial.println(val);
// step one revolution
in two direction:
if(val&50){
Serial.println("clockwise");
//原library是整步,整步走的角度是半步走的角度的两倍,半步走的声音比较小,平稳些,启动时最好是半步的走比较稳定
//022中library修改为半步模式不成功???FUCK
//四拍运行时步距角为θ=360度/(revolution*4)(俗称整步),八拍运行时步距角为θ=360度/(revolution*8)(俗称半步)
myStepper.step(stepsPerRevolution/2);//
delay(500);
// step one revolution in the other direction:
Serial.println("counterclockwise");
myStepper.step(-stepsPerRevolution/2);
delay(500);
28BYJ48步进电机 4拍、8拍驱动相序表 C51程序代码
树莓派控制五线四相步进电机
Arduino学习笔记一,电位器控制步进电机。
步进电机变速控制测试程序
没有更多推荐了,105 条评论分享收藏感谢收起
http://v.youku.com/v_show/id_XNjg1ODA4NDEy.html
我们把解一个魔方分成两部分讲:1. 解法目前玩家常用的一个解法是CFOP,参见这个解法的思路是按照“层”来复原,平均步数是55步。1.底层十字2.底两层3.顶层同色4.顶层位置另一个解法是桥式1.一个1x2x32.相对的两个1x2x33.完成4个角块4.调整剩下的块桥式的解法据说平均要40步左右(我记得好像是,不是很确定),不过有需要转动中层的步骤,这个对于玩家比较难受,所以虽然步数较少但是大部分速拧玩家都是用的CFOP上面两个都是人使用的解法,到了机器上完全可以有更加高级的解法。cubestormer使用的解法是Kociemba,在 里面有,摘抄如下1992 年, 德国数学家科先巴(H. Kociemba) 提出了一种寻找魔方复原方法的新思路。 他发现, 在魔方的基本转动方式中, 有一部分可以自成系列, 通过这部分转动可以形成将近 200 亿种颜色组合。 利用这 200 亿种组合, 科先巴将魔方的复原问题分解成了两个步骤: 第一步是将任意一种颜色组合转变为那 200 亿种组合之一, 第二步则是将那 200 亿种组合复原。 如果我们把魔方复原比作是让一条汪洋大海中的小船驶往一个固定的目的地, 那么科先巴提出的那两百亿种颜色组合就好比是一片特殊的水域 - 一片比那个固定地点大了 200 亿倍的特殊水域。 他提出的两个步骤就好比是让小船首先驶往那片特殊水域, 然后从那里驶往那个固定的目的地。 在汪洋大海中寻找一片巨大的特殊水域, 显然要比直接寻找那个小小的目的地容易得多, 这就是科先巴的新思路的优越之处。但即便如此, 要用科先巴的方法对 “上帝之数” 进行估算仍不是一件容易的事。 尤其是, 要想进行快速的计算, 最好是将复原那 200 亿种颜色组合的最少转动次数 (这相当于是那片 “特殊水域” 的地图) 存储在计算机的内存中, 这大约需要 300 兆的内存。 300 兆在今天看来是一个不太大的数目, 但在科先巴提出新思路的那年, 普通机器的内存连它的十分之一都远远不到。 因此直到三年后, 才有人利用科先巴的方法给出了第一个估算结果。 此人名叫(M. Reid), 是美国(Unversity of Central Florida) 的数学家。 1995 年, 里德通过计算发现, 最多经过 12 次转动, 就可以将魔方的任意一种颜色组合变为科先巴那 200 亿种组合之一; 而最多经过 18 次转动, 就可以将那 200 亿种组合中的任意一种复原。 这表明, 最多经过 12+18=30 次转动, 就可以将魔方的任意一种颜色组合复原步数最多是30,比前两种快了不少是吧。BTW,魔方的任何状态应该都能在20步之内复原的,这个数字就是上帝数字2. 速度对于专业魔方,摩擦不是问题,解法相近的话,玩家拼的是手速。先贴一个容错测试的视频
再放一个转动的视频
专业魔方是很变态的,怎么都能转过去,而且很滑的,要不然我不会买了各种魔方各种砸钱。。。前面说过,玩家拼的是手速,其实还少了一点,就是观察和反应,因为当你做完一步的时候,需要观察下一步的各个色块的位置来决定使用哪个公式,观察的时间间隔在玩家之间是非常重要的。比如对于我来说,我的观察世间可能就造成了4-5秒的停顿,而最厉害的玩家大概能平均在10s内复原一个魔方,我观察的时间就占了他们复原时间的一半,我手速还比他们慢,所以我被虐的不知道到哪里去了。说回手速,首先贴一个曾经的世界纪录
使用CFOP的顶级的玩家平均10秒做出CFOP的55步,那么也就是一秒能转5-6步,其实这只是平均而已,比如很多训练时候做的(R U R' U‘) x 6, 一共24步, 一般要求2s内做完,平均12步/秒回到机器来说, 观察根本不是问题,解法可以在确定了魔方的状态之后直接计算出步骤,然后省去观察时间, 所以只需要单纯的速度,也就是调试机器即可,我觉得一秒钟8步左右根本就不是难事。对于一个30步的解法,3-4秒妥妥的。3. 魔方状态的识别这个是图像识别的问题, 这里有个视频,应该有一些帮助4. 剩下的就是砸钱和耗时间了似乎。。。==============================================================最后, 图片视频都来源网络,现找的,如果出现了魔方品牌,不是我打广告。。。赞同 94 条评论分享收藏感谢收起此CSDN博客已经停止更新,新的博客已经迁移到www.fenesky.com
2相四线,四相五线,四相六线步进电机接线及驱动方法
步进电机原理
按照常理来说,步进电机接线要根据线的颜色来区分接线。但是不同公司生产的步进电机,线的颜色不一样。特别是国外的步进电机。
那么,步进电机接线应该用万用表打表。
步进电机内部构造如下图:
通过上图可知,A,~A是联通的,B和~B是联通。那么,A和~A是一组a,B和~B是一组b。
不管是两相四相,四相五线,四相六线步进电机。内部构造都是如此。至于究竟是四线,五线,还是六线。就要看A和~A之间,B和B~之间有没有公共端com抽线。如果a组和b组各自有一个com端,则该步进电机六线,如果a和b组的公共端连在一起,则是5线的。
所以,要弄清步进电机如何接线,只需把a组和b组分开。用万用表打。
四线:由于四线没有com公共抽线,所以,a和b组是绝对绝缘的,不连通的。所以,用万用表测,不连通的是一组。
五线:由于五线中,a和b组的公共端是连接在一起的。用万用表测,当发现有一根线和其他几根线的电阻是相当的,那么,这根线就是公共com端。对于驱动五线步进电机,公共com端不连接也是可以驱动步进电机的。
六线:a和b组的公共抽线com端是不连通的。同样,用万用表测电阻,发现其中一根线和其他两根线阻止是一样的,那么这根线是com端,另2根线就属于一组。对于驱动四相六线步进电机,两根公共com端不接先也可以驱动该步进电机的。
步进电机相关概念:
相数:产生不同对极N、S磁场的激磁线圈对数。常用m表示。
拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即 A-AB-B-BC-C-CD-D-DA-A.
步距角:对应一个脉冲信号,电机转子转过的角位移用θ表示。θ=360度(转子齿数J*运行拍数),以常规二、四相,转子齿为50齿电机为例。四拍运行时步距角为θ=360度/(50*4)=1.8度(俗称整步),八拍运行时步距角为θ=360度/(50*8)=0.9度(俗称半步)。
定位转矩:电机在不通电状态下,电机转子自身的锁定力矩(由磁场齿形的谐波以及机械误差造成的)
静转矩:电机在额定静态电作用下,电机不作旋转运动时,电机转轴的锁定力矩。此力矩是衡量电机体积(几何尺寸)的标准,与驱动电压及驱动电源等无关。
步进电机驱动
驱动步进电机,无非是给电机a和b组先轮流给连续的脉冲,步进电机就可以驱动了。
步进电机驱动码:
从图中可以看出来,要实现步进电机的转动,可以用以下两种方式:(1)8拍的方式八个状态:1、在A与A-正电压,B与B-不给电悬空;2、在A与A-正电压,B与B-也给正电压;3、A与A-不给电压悬空,B与B-正电压;4、A与A-给负电压,B与B-给正电压;5、A与A-给负电压,B与B-不给悬空;6、A与A-给负电压,B与B-给负电压;7、A与A-不给电悬空,B与B-给负电压;8、A与给正电压,B与B-给负电压;按以上八个状态轮流供电,控制一下脉宽应该就可以了。 四个引脚各一根控制线:A~H表示各线时序
1.........(2)4拍的方式我的方法 一般是电流驱动的。 我下面的a~ 和b~ 表示反向电流。两相双二拍:ab
为一个转向。ab
自己的一点体会:偶觉得两相4线电机 和 四相4线电机 差不多.(这从上面我画的图)也可以看出来,只不过物理上绕线的方式不同(这也导致编程上脉冲表的不同),在功能上是一样的.
四相五线步进电机
两相4线步进电机
两相四线步进电机的驱动
树莓派控制五线四相步进电机
六线两相混合式步进电机的接线
arduino UNO 用TB6560驱动42步进电机
没有更多推荐了,树莓派控制五线四相步进电机
同样是大二时候的坑......就不明白了当初为什么不把代码也给贴上去,现在就贴出代码。
#include&stdio.h&
#include&stdlib.h&
#include&wiringPi.h& //提供GPIO控制函数
#include&unistd.h& //提供sleep()函数
void DelayMs(int n)
usleep(n*1000);
//使树莓派停止
void Step_Stop(int* Ins)
for(int i=0;i&=3;i++)
digitalWrite(Ins[i],0); //设置为低电平,停止转动
//完成一圈的旋转
void Step_Rounds(int* Ins)
for(i=0;i&4;i++)
for(j=0;j&4;j++)
digitalWrite(Ins[3-j],1);
digitalWrite(Ins[3-j],0);
//DelayMs(20);
int main(void)
int A=0,B=1,C=2,D=3;
int Pin[4]={A,B,C,D};
int count=100;
pinMode(A,OUTPUT);
pinMode(B,OUTPUT);
pinMode(C,OUTPUT);
pinMode(D,OUTPUT);
for(i=1;i&=i++)
Step_Rounds(Pins);
Step_Stop(Pins);
printf("Stop!\n");
} 在编译C文件的时候,使用gcc XXX.c -o XXX -lwiringPi指定连接wiringPi库才可以驱动步进电机,之后运行编译好的文件,便可以看到步进电机工作了。
5、树莓派3 Model B ——— 树莓派PWM控制直流电机速度
2相四线,四相五线,四相六线步进电机接线及驱动方法
利用Arduino+TB6600驱动模块控制两相四线42减速步进电机
树莓派pwm控制无刷电机
关于树莓派控制电机--Python
树莓派+ 步进电机
树莓派通过GPIO控制步进电机(python)
利用树莓派控制步进电机——Python语言
树莓派学习笔记——wiringPi简介、安装和管脚说明
没有更多推荐了,

我要回帖

更多关于 步进驱动器接线图 的文章

 

随机推荐