完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我想要实现的功能是电机正转3秒打开阀门,转一圈64个脉冲的霍尔编码器计数,然后加压设备通过阀门加压,传感器采集压强值。当到达设定值时,电机反转霍尔编码器的计数值,阀门关闭。由于脉冲数小,加上是AB相的编码器,测量误差在129个脉冲。
然后我在程序上加了个129,脉冲数成图下方的样子了。void PWM_SET1(u8 dir,u16 a)
{ if(dir==1) { tiM_SetCompare4(TIM8,0); TIM_SetCompare3(TIM8,a); dir=0; } else { TIM_SetCompare3(TIM8,0); TIM_SetCompare4(TIM8,a); dir=1; } } PWM_SET1(1,300); //电机正转 delay_s(2); PWM_SET1(0,0); //获取先前的计数值 printf("EncCntAAAA = %d-------",EncCnt); closeb=EncCnt; // EncCnt= hEncoder_Timer_Overflow * 64 + TIM3->CNT,closeb为反转圈数 hEncoder_Timer_Overflow=0; //hEncoder_Timer_Overflow为电机转一圈的脉冲数 EncCnt=0; PWM_SET1(0,300); out:if(closeb>=(EncCnt+129)) ///判断脉冲个数,加了129后脉冲数差不多 { goto out; } PWM_SET1(0,0); printf("EncCntBBBB = %drn",EncCnt); hEncoder_Timer_Overflow=0; EncCnt=0; choose=0; 试了下,感觉电机反转的值比正转多一点点。想请教下,如何确保阀门关闭完全呢。如果用传感器采集的压强值作为标准判断是否关闭,这样可以吗。因为我测得的压强值在跳动 |
|
相关推荐
1个回答
|
|
我反转的圈数那样设置可以吗?总感觉脉冲数不对,64个脉冲,误差应该比较大,应该怎么修改比较好呢
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1240 浏览 1 评论
【⌈嵌入式机电一体化系统设计与实现⌋阅读体验】+磁力输送机系统设计的创新与挑战
1628 浏览 0 评论
3327 浏览 2 评论
4869 浏览 6 评论
3915 浏览 0 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-14 18:20 , Processed in 0.665500 second(s), Total 77, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号