无人机控制器应用技术 6.1 直流电机 6.1.2 单片机直流电机PWM控制系统.pptxVIP

无人机控制器应用技术 6.1 直流电机 6.1.2 单片机直流电机PWM控制系统.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Signature Date 无人机应用技术专业教学资源库 单片机控制直流电机 课题介绍 硬件结构 PWM脉宽调制L298电机驱动 软件设计 1 2 3 4 5 本系统是以单片机STC89C52和L298控制的直流电机脉宽调制调速系统。利用STC89C52芯片进行低成本直流电动机控制系统的设计,能够简化系统构成、降低系统成本、增强系统性能、满足更多应用场合的需要。系统实现对电机的正转、反转、急停、加速、减速的控制。 硬件结构 硬件的整体结构如下: L298电机驱动 直流电机 STC89C52 PWM脉宽调制 PWM简介 PWM(脉冲宽度调制)是按一个固定的频率来接通和断开电源,并且根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来达到改变平均电压大小的目的,从而来控制电动机的转速。也正因为如此,PWM又被称为“开关驱动装置”。 PWM占空比 如下图,设电机始终接通电源时,电机转速最大为Vmax,设占空比D= t1 / T,则电机的平均速度为Va = Vmax * D,其中Va指的是电机的平均速度。由上面的公式可见,当我们改变占空D=t1/T时,就可以得到不同的电机平均速度Va,从而达到调速的目的。 PWM调速软件实现 采用定时器做为脉宽控制的定时方式,这一方式产生的脉冲宽度极其精确,误差只在几个us。脉宽W、定时标记T定时计数器10us中断一次,一共100次,周期1ms T=W TW PWM 控制流程图 L298电机驱动 L298是SGS公司的产品,L298N为15个管角的单块集成电路,高电压,高电流,其额定工作电流为 1 A,最大可达 1.5 A,Vss 电压最小 4.5 V,最大可达 46 V。L298N可直接对电机进行控制,无须隔离电路,可以驱动双电机。 驱动的使用方法: 软件设计 第一个任务:产生一个频率为100Hz的脉宽调制信号。 通过计算得到该信号的周期T=10ms,将10ms分成100份。 得到的时间是0.1ms(100us)因此,先要用定时计数器产生一个100us的定时。 程序如下: void Timer0Init(void) //100微秒@11.0592MHz { TMOD = 0xF0; //设置定时器模式 TMOD |= 0x02; //设置定时器模式 TL0 = 0xA4; //设置定时初值 TH0 = 0xA4; //设置定时重载值 TF0 = 0; //清除TF0标志 TR0 = 1; //定时器0开始计时 ET0=1; EA=1; } 软件设计 第二个任务:编写中断服务程序 中断服务程序是非常关键的,负责改变PWM的值,从而控制直流电机的速度 void VT0() interrupt 1 //0.1ms执行一次中断 { n++; if(n==100) //10ms定时,100HZ {n=0; } if(nPWM_Value) { P1_0=0;} else {P1_0=1;} } 软件设计 第三个任务:实现电机加速、减速 for(m=10;m=100;m=m+10) { PWM_Value=m; //m=10,20,30....100,减速 Delay200ms(); //1秒 } for(m=100;m=10;m=m-10) { PWM_Value=m; //m=100,90,80....10,加速 Delay200ms(); //1秒 软件设计 第四个任务:实现正转减速、制动、反转加速 void main() { Timer0Init(); while(1) { P1_6=0; //IN1 P1_7=1; //IN2,正转 for(m=10;m=100;m=m+10) { PWM_Value=m; //m=10,20,30....100,减速 Delay200ms(); //1秒 Delay200ms(); Delay200ms(); Delay200ms(); Delay200ms(); } 软件设计 P1_6=0; //IN1 P1_7=0; //IN2,制动 Delay200ms(); Delay200ms(); 同理,反转也是一样的,同学们可以依

您可能关注的文档

文档评论(0)

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

大部分文档都有全套资料,如需打包优惠下载,请留言联系。 所有资料均来源于互联网公开下载资源,如有侵权,请联系管理员及时删除。

1亿VIP精品文档

相关文档