完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
2个回答
|
|
实习公司项目需要控制步进电机,电机方面主要包括控制运动、加减速、限位。下面介绍一下在电机控制方面的心得,由于对于电机的控制不需要很精确,并且自身能力有限,相比于大牛有很大的差距。
1.需要实现的功能 主要是控制滑块的运动,开始运动时需要加速,当稳定在最高速度时匀速运动,检测到下端限位信号时,开始减速直到停止,然后进行反向加速,匀速,检测到上端限位时停止运动。 加速——匀速——减速——停止——反向——加速——匀速——停止 2.硬件部分 本次电机为两相四线步进电机,两相:电机有两个线圈(绕组),四线:电机有四根线,一般是A+ A- B+ B-。有些电机不会标注出线的极性,其实可以用万用表测,短接的就是同一个绕组,或者短接之后电机转动很费力,也代表是同一个绕组。
引脚介绍: 1.ENABLE/:使能引脚,高电平停止工作,低电平正常工作; 2.M0-M2:代表细分,最大可以达到32细分,这部分可以参考datasheet; 3.RESET/ 、SLEEP/:低电平会休眠和复位,因此电机正常工作时,两个引脚接高电平; 4.STEP:最重要的引脚,通过单片机给这个引脚PWM信号,控制电机运动; 5.DIR:0和1控制电机方向; 6.VMOT:供电引脚,一般用12-20V就可以了; 7.B2-A1:接电机四根线; 8.FAULT/:接高电平工作;
3.软件部分 软件主要就是通过stm32输出PWM脉冲,脉冲的频率决定了电机的速度。 PWM通过定时器产生,决定频率的主要是arr重装载值,以及psc预分频值。最终输出的PWM频率为72000k/(arr*psc)。
S型加减速: T型加速就是匀加速,固定加速度。S型加速需要根据公式计算,详细说明如下: 其中Fcurrent代表某个点的频率:Fmin代表最小频率;Fmax代表最大频率;Flexible为S曲线区间系数,越大代表压缩的最厉害,中间(x坐标0点周围)加速度越大;越小越接近匀加速。理想的S曲线的取值为4-6;num:频率点/2; 例如想要从1kHz加速到40kHz,中间经过40个点,Fmin=1kHz,Fmax=40kHz,num=40/2=20,最后通过excel计算出各个频率值,可以发现在末端的加速是非常缓慢的,中间加速比较大。问题就是,初始速度并不是1khz了,他取决于系数的取值,取6时,初始速度就越小。 软件中实现: 采用定时器3输出PWM脉冲,定时器2用于计数中断(更精确的控制可以通过定时器2来计算出给出多少个脉冲,也就是电机运动的步数,那样的话就可以精确控制电机运动,形成开环反馈) if(TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) // { TIM_ClearITPendingBit(TIM2, TIM_IT_Update); // time++; if(time>=35)// { time=0; //每x个周期进入定时后,对time进行清零,然后重新进行累加 if(jiasu==1) //加速状态 { n=n+1; fre=freq[n]; } if(jiasu==0) //减速状态,检测到下端的限位后进行减速,此时的n应该等于加速之后的最大值,也就是频率最大的时候,接下来进行递减,速度降低 { n=n-1; fre=freq[n]; } if(n>=38)// { n=38; } if(n<=0) //根据前面速度递减,当减到第一个数时,速度已经降到了1k,可以让电机开始停止然后转向 { GPIO_SetBits(GPIOC,GPIO_Pin_6); // 拉高步进电机的enable,停止运动 DIR0=!DIR0; //转向 delay_ms(100); n=0; fre=freq[n]; jiasu=1; GPIO_ResetBits(GPIOC,GPIO_Pin_6); // 转向之后拉低电机的enable,开始运动 } TIM3_PWM_Init(fre,9); TIM_SetCompare4(TIM3,fre/2);// 改变TIM3的输出频率,从而改变电机的速度 } } } |
|
|
|
使用专用运动控制芯片hmc8045,只要给定加减速时间,运行速度等参数就可以了,参考一下这个文章:https://blog.csdn.net/weixin_49237052/article/details/115693537
|
|
|
|
只有小组成员才能发言,加入小组>>
2384 浏览 0 评论
8906 浏览 4 评论
36474 浏览 19 评论
4980 浏览 0 评论
24297 浏览 34 评论
1374浏览 2评论
1627浏览 1评论
2016浏览 1评论
1440浏览 0评论
384浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 18:48 , Processed in 1.016687 second(s), Total 49, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号