编码器速度和方向检测,371电机方向与速度检测,stm32编码器接口模式

上传人:小** 文档编号:93201020 上传时间:2019-07-18 格式:DOC 页数:8 大小:253KB
返回 下载 相关 举报
编码器速度和方向检测,371电机方向与速度检测,stm32编码器接口模式_第1页
第1页 / 共8页
编码器速度和方向检测,371电机方向与速度检测,stm32编码器接口模式_第2页
第2页 / 共8页
编码器速度和方向检测,371电机方向与速度检测,stm32编码器接口模式_第3页
第3页 / 共8页
编码器速度和方向检测,371电机方向与速度检测,stm32编码器接口模式_第4页
第4页 / 共8页
编码器速度和方向检测,371电机方向与速度检测,stm32编码器接口模式_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《编码器速度和方向检测,371电机方向与速度检测,stm32编码器接口模式》由会员分享,可在线阅读,更多相关《编码器速度和方向检测,371电机方向与速度检测,stm32编码器接口模式(8页珍藏版)》请在金锄头文库上搜索。

1、编码器是什么玩意呢,它可是一个好玩的东西,做小车测速必不可少的玩意,下面,我将从编码器的原理讲起,一直到用stm32的编码器接口模式,测出电机转速与方向。1.编码器码盘示意图.gif (15.77 KB, 下载次数: 36)下载附件 保存到相册 2014-3-5 08:19 上传图1 编码器示意图 图1为编码器的示意图,中间是一个带光栅的码盘,光通过光栅,接收管接收到高电平,没通过,接收到低电平。电机旋转一圈,码盘上有多少光栅,接受管就会接收多少个高电平。371电机中的码盘就是这样的,他是334线码盘,具有较高的测速精度,也就是电机转一圈输出334个脉冲,芯片上已集成了脉冲整形触发电路,输出的

2、是矩形波,直接接单片机IO就OK。 增量式旋转编码器通过内部两个光敏接受管转化其角度码盘的时序和相位关系,得到其角度码盘角度位移量增加(正方向)或减少(负方向)。下图为编码器的原理图:编码器.jpg (2.85 KB, 下载次数: 32)下载附件 保存到相册 2014-3-4 20:16 上传图2 增量式旋转编码器A,B两点对应两个光敏接受管,A,B两点间距为 S2 ,码盘的光栅间距分别为S0和S1。S0+S1的距离是S2的四倍。这样保证了A,B波形相位相差90度。旋转的反向不同,锯齿波A,B先到达高电平的顺序就会不同,如上图左侧所示,顺序的不同,就可以得到旋转的方向。2.stm32编码器接口

3、模式(寄存器) stm32的编码器接口模式在STM32中文参考手册中有详细的说明,在手册273页,14.3.12节。程序是完全按照 下图方式,设置寄存器的。 请到本文尾下载STM32中文参考手册 stm32编码器.jpg (67.34 KB, 下载次数: 98)下载附件 保存到相册 2014-3-4 20:33 上传图3 从图3中可以看出,TI1波形先于TI2波形90时,每遇到一个边沿变化是,计数器加1(可以通过寄存器设置加减),可以看出一个光栅,被计数了4次。TI1波形后于TI2波形90时 ,每遇到一次边沿变化,计数器减1。 1. /TIM2_Encoder_Init,Tim2_CH1(PA

4、0);Tim2_CH2(PA1)2. /arr:自动重装值 0XFFFF3. /psc:时钟预分频数 ,不分频4. void TIM2_Encoder_Init(u16 arr,u16 psc)5. 6. RCC-APB1ENR|=1APB2ENR|=1CRL&=0XFFFFFF00; /PA0、PA1 清除之前设置10. GPIOA-CRL|=0X00000044; /PA0、PA1 浮空输入11. 12. TIM2-ARR=arr; /设定计数器自动重装值 13. TIM2-PSC=psc; /预分频器14.15. TIM2-CCMR1 |= 1CCMR1 |= 1CCER |= 0CCE

5、R |= 0SMCR |= 3CR1 |= 1APB2ENR|=1CRL&=0XFFFFF0FF;6. GPIOD-CRL|=0X00000300;/PD.2推挽输出7. GPIOD-ODR|=1APB2ENR|=1CRL&=0XFFFFFF00;15. GPIOC-CRL|=0X00000033;/PC10推挽输出16. GPIOC-ODR|=0XFAPB1ENR|=1CRL&=0XF0FFFFFF;/PA6输出30. GPIOA-CRL|=0X0B000000;/复用功能输出 31. GPIOA-ODR|=1ARR=arr;/设定计数器自动重装值 34. TIM3-PSC=psc;/预分频

6、器不分频35. 36. TIM3-CCMR1|=6CCMR1|=1CCER|=1CR1=0x0080; /ARPE使能 42. TIM3-CR1|=0x01; /使能定时器3 43. 44.45. /电机方向与速度控制,速度调节范围为-100+10046. /大于0时,正转,小于0时,反转47. / 占空比低于0.4时电机不转48. /(占空比是指高电平在一个周期之内所占的时间比率)49. /TIM3-CCR1的设定范围为0900(因为arr=900)50. /见STM32参考手册,14.3.9PWM模式。51. void Motor_Speed_Control(s16 motorSpeed)

7、 52. 53. s16 speed = 0 ; 54. 55. if(motorSpeed100)speed = 100;56. else if (motorSpeed 0)64. 65. M_1 = 0;66. M_2 = 1;67. TIM3-CCR1 = speed * 9;68. 69. else70. 71. M_1 = 1;72. M_2 = 0;73. TIM3-CCR1 = -speed * 9;74. 75. 76.复制代码电机速度与方向检测代码1. /TIM2_Encoder_Init,Tim2_CH1(PA0);Tim2_CH2(PA1)2. /arr:自动重装值 0XFFFF3. /psc:时钟预分频数 ,不分频4. /见STM32中文手册 14.3.12编码器接口模式5. void TIM2_Encoder_Init(u16 arr,u16 psc)6. 7. RCC-APB1ENR|=1APB2ENR|=1CRL&=0XFFFFFF00; /PA0、PA1 清除之前设置11. GPIOA-CRL|=0X00

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号