单片机软件实现直流电机PWM以及电机测速.docVIP

单片机软件实现直流电机PWM以及电机测速.doc

  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文档。上传文档
查看更多
一、摘要 利用AT89C51设计一个直流电机的软件模拟PWM驱动及测速系统。单片机读取键盘值来设定转速和正反转,并且通过红外对管来测量转速。本系统具有精度高,成本低,使用方便等优点。 关键词:AT89C51;PWM;测速。 引言 随着社会的发展,各种智能化的产品日益走入寻常百姓家。为了实现产品的便携性、低成品以及对电源的限制,小型直流电机应用相当广泛。对直流电机的速度调节,我们可以采用多种办法,本文给出一种用单片机软件实现PWM调速的方法及红外对管测转速。 二、直流电机调速 知道通过调节直流电机的电压可以改变电机的转速,但是一般我们设计的电源大都是固定的电压,而且模拟可调电源不易于单片机控制,数字可调电源设计麻烦。所以这里用脉宽调制(PWM)来实现调速。方波的有效电压跟电压幅值和占空比有关,我们可以通过站空比实现改变有效电压。一般用软件模拟PWM可以有延时和定时两种方法,延时方法占用大量的CPU,所以这里采用定时方法。 三、直流电机旋转方向 一般利用H桥电路来实现调速。H桥驱动电路: 图4.12中所示为一个典型的直流电机控制电路。电路得名于“H桥驱动电路”是因为它的形状酷似字母H。4个三极管组成H的4条垂直腿,而电机就是H中的横杠(注意:图4.12及随后的两个图都只是示意图,而不是完整的电路图,其中三极管的驱动电路没有画出来)。 如图所示,H桥式电机驱动电路包括4个三极管和一个电机。要使电机运转,必须导通对角线上的一对三极管。根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。 ?????????????????? 图4.12 H桥驱动电路 要使电机运转,必须使对角线上的一对三极管导通。例如,如图4.13所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经Q4回到电源负极。按图中电流箭头所示,该流向的电流将驱动电机顺时针转动。当三极管Q1和Q4导通时,电流将从左至右流过电机,从而驱动电机按特定方向转动(电机周围的箭头指示为顺时针方向)。 ??????????????? 图4.13 H桥电路驱动电机顺时针转动 图4.14所示为另一对三极管Q2和Q3导通的情况,电流将从右至左流过电机。当三极管Q2和Q3导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动(电机周围的箭头表示为逆时针方向)。 ????????????? 图4.14 H桥驱动电机逆时针转动 可以把Q1跟Q4接在一起,Q3跟Q2接在一起,这样只要两个单片机I/O口就行。下面的程序中lun1、lun2就表单片机的两个I/O口。这个桥式电路图只用来说明原理,实际应用还要看电机的额定电压、电流。也可以用L293、L298直流的集成芯片。 四、PWM程序 void timer0() interrupt 1 { if(temp) { TH0=time_h_0; TL0=time_l_0;//设置低电平时间 temp=0; } else { TH0=time_h_1; TL0=time_l_1;//设置高电平时间,可以通过键盘设定来达到调速功能。 temp=1; T0_count++ ;//作测速定时用 }//这样定时在两个时间里变化起到类似两个定时器的作用 // qianjin从键盘读取 if(qianjin==1) //正转 { lun1=temp; lun2=1;//低电平有效 } else if(qianjin==2) //反转 { lun1=1; lun2=temp; } else if(qianjin==3) //停止 { lun1=1; lun2=1; } } 这样就可以实现直流电机正反转和调速。当然键盘程序比较简单,篇幅所限,不详细给出。 五、测速 通过红外对管来测量轮子转速,电路图如下: 测速可以分3种:测频法、测周法和测频侧周混合法。这里我只介绍测频法,因为已经用了一个定时器,可以在这个定时器基础上设定时间,程序中T0_count就是时间变量。若要用侧周法,会有一个误差,主要来自定时器的误差。 时间定了后接下来要测脉冲数,可以用计数器或者外部中断,采用计数器比较方便。程序: if(T0_count=125) { TR1 =0; //关闭计数器 T0_count =0; int_h =TH1; //T1计数缓冲单元 int_l =TL1; TH1 =0; //清计数器 TL1 =0; T1_count =0; TR1 =1; //开启计数器 } // Time1中断服务函数 // 对T1溢出产生中断的次数进行计数 // 计满65535,产生一次溢出中断 void timer1() interrupt 3 { //因为电机转速实际测量中电机转速并不超过

文档评论(0)

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

建筑从业资格证持证人

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

领域认证该用户于2023年05月12日上传了建筑从业资格证

1亿VIP精品文档

相关文档