完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
单片机控制直流电机
①PWM脉宽控制:本设计中采用软件延时方式对脉冲宽度进行控制,延时程序函数如下:void delay(unsigned char dlylevel){ int i=50*dlylevel; while(--i);}此函数为带参数DLYLEVEL,约产生DLYLEVEL*400us的延时,因此一个脉冲周期可以由高电平持续时间系数hlt和低电平持续时间系数llt组成,本设计中采用的脉冲频率为25Hz,可得hlt+llt=100,占空比为hlt/(hlt+llt),因此要实现定频调宽的调速方式,只需通过程序改变全局变量hlt,llt的值,该子程序流程图如图四。②键盘中断处理子程序:采用中断方式,按下键,单片机P3.2脚产生一负跳沿,响应该中断处理程序,完成延时去抖动、键码识别、按键功能执行。调速档、持续加/减速:调速档通过(0-6)共七档固定占空比,即相应档位相应改变hlt,llt的值,以实现调速档位的实现。而要实现按住加/减速键不放时恒加或恒减速直到放开停止,就需在判断是否松开该按键时,每进行一次增加/减少1%占空比(即hlt++/--;llt--/++),其程序流程图如图五。③显示子程序:利用数组方式定义显示缓存区,缓存区有8位,分别存放各个LED管要显示的值。显示子程序为一带参子程序,参数为显示缓存的数组名,通过for(i=0;i<8;i++)方式对每位加上位选码,送到P0口并进行一两毫秒延时。该显示子程序只对各个LED管分别点亮一次,因此在运行过程中,每秒执行的次数不应低于每秒24次。④定时中断处理程序:采用定时方式1,因为单片机使用12M晶振,可产生最高约为65.5ms的延时。对定时器置初值3CB0H可定时50ms,即系统时钟精度可达0.05s。当50ms定时时间到,定时器溢出则响应该定时中断处理程序,完成对定时器的再次赋值,并对全局变量time加1,这样,通过变量time可计算出系统的运行时间。 对于一个数的显示,先应转成BCD码,即取出每一个位,分别送入显示缓存区,对于转BCD的算法,应对一个数循环除10取模,直至为0,程序如下:do{dispbuff[bcd_p]=bechange%10; //dispbuff为显示缓冲区数组 bcd_p++;}while(bechange/=10) //disp_p为数组指针软件设计中的特点:1、 对于电机的启停,在PWM控制上使用渐变的脉宽调整,即开启后由停止匀加速到默认速度,停止则由于当前速度逐渐降至零。这样有利于保护电机,如电机运用于小车上,在启动上采用此方式也可加大启动速度,防止打滑。2、 对于运行时间的计算、显示。配合传感器技术可用于计算距离,速度等重要的运行数据。3、 键盘处理上采用中断方式,不必使程序对键盘反复扫描,提高了程序的效率。三、 测试结果与分析:
结束语 本设计在硬件上采用了基于PWM技术的H型桥式驱动电路,解决了电机马驱动的效率问题,在软件上也采用较为合理的系统结构及算法,提高了单片机的使用效率,且具有一定的防飞能力。但该设计也有不足之处,主要是在关于速度的反馈上,无法提供较为直观的速度表示方式,因此,有必要引入传感器技术对速度进行反馈,以rpm或rps表达当前的转速进行显示。
向楼主请教一下,直流电机是否能与步进电机共用于一个场合,直流电机的转速精度能达到多少?直流电机是否能控制800-10000rpm中的任意一数值? 谢谢
举报
asd123
A0602306003
xigua000
foxpro2005
晕死,下了两次都是空白的?
luoxiduo
suzhu
wcy861012
孙一
蒋光釉
xinghan52
iavvh
王绥学
南里理工学生
发布
AG32 MCU 的电机控制方案
277 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
368 浏览 0 评论
暖风机MCU工作不正常怎么处理
766 浏览 2 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
592 浏览 0 评论
【敏矽微ME32G070开发板免费体验】新建工程(MDK)
879 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12039 浏览 31 评论
电子发烧友网
电子发烧友论坛
查看 »
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 09:44 , Processed in 1.188023 second(s), Total 73, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com