网站大量收购独家精品文档,联系QQ:2885784924

直流电机驱动模块.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
方案论证 由于使用的是永磁式直流电机,因此只能对电枢电压进行控制来实现电机转速和方向的控制,因此电机驱动模块要能方便的实现对输出电压的大小和极性控制。可以考虑的方案有: 方案一:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。这个方案的优点是电路比较简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短可靠性不高。 方案二:采用功率管组成H桥型电机驱动电路,并利用PWM波来实现对输出电压的有效值大小和极性进行控制。这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启和反转等优点。 图E.1 电机驱动电路(注:图见智能小车论文模块) 图E.2 L298内部结构图 由于系统有两个电机时使用PWM信号控制直流电机电枢电压有效值来改变电机速度和方向,所以需采用L298芯片来控制两个电机,引脚6,11用来PWM控制,将5,7和7,12分别接高低电平,仅用单片机的两个端口输出PWM控制6,11引脚就可以实现直行,转弯和后退,由于前轮的驱动能力较大,提高控制的可靠性,缩短导通时间;六个光耦器件起到隔离作用,将单片机发出的控制与电机驱动电路隔离(起来),防止干扰,在电机的两端并联一个104的小电容。滤去高频谐波信号。其工作原理如下:当P1^0和P1^1的信号输入为高电平和PWM电平时,L298的2和3引脚分别输出高低电平,电机正传,如果改变P1^0和P1^1信号,则L298的2和3引脚分别输出低高电平,电机反转。因此电路的有效值功率其中α为PWM波的占空比,U为电机的供电电压,I为流过电机的电流,通过改变占空比就能方便的改变电机的驱动功率。若左边为点电平,右边为高电平,则电机反转。光耦的工作原理是:它的内部是一个二极管和一个光电三极管组成,当二极管通电导通是发出红外光,是光电三极管导通;二极管的导通一定的电流,所以电阻R的值不能过大,VCC=5V,选取R=330欧姆, = =15mA 图中的电容都是起滤波的作用,八个二极管都是当电机反转是起泄流的作用。 图E.3 电机驱动电路图 图E.4 电机驱动电路顶层PCB图 图E.5 电机驱动电路顶层丝印图 图E.6 电机驱动电路底层丝印图 注:图详见“直流电机调速1” 程序清单: //本设计中采用的脉冲频率为25Hz,可得hlt+llt=100, #includereg52.h #ifndef _DEFINE_ #define _DEFINE_ #define uchar unsigned char #define uint unsigned int #endif //电机IO说明 sbit fwd=P1^0; sbit rwd=P1^1; sbit en=P1^2; bit turnflag;//正反转标志 uchar hlt,llt; void delayrun(unsigned char dlylevel)//约产生 DLYLEVEL*400us 的延时 { int i=50*dlylevel; while(--i); } void motorrun() { if(turnflag==1)//正转 { afwd=1; arwd=0; aen=1; //bfwd=1; //brwd=0; //ben=1; delayrun(hlt);// 可以测试一下fwd=0; rwd=0; aen=0; //arwd=0; //aen=0; //ben=0; delayrun(llt); } else//反转 { afwd=0; arwd=1; aen=1; //bfwd=0; //brwd=1; //ben=1; delayrun(hlt); aen=0; //arwd=0; //aen=0; //ben=0; delayrun(llt); } }

文档评论(0)

baihualong001 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档