已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编码器是什么玩意呢,它可是一个好玩的东西,做小车测速必不可少的玩意,下面,我将从编码器的原理讲起,一直到用stm32的编码器接口模式,测出电机转速与方向。1.编码器码盘示意图.gif (15.77 KB, 下载次数: 36)下载附件 保存到相册 2014-3-5 08:19 上传图1 编码器示意图 图1为编码器的示意图,中间是一个带光栅的码盘,光通过光栅,接收管接收到高电平,没通过,接收到低电平。电机旋转一圈,码盘上有多少光栅,接受管就会接收多少个高电平。371电机中的码盘就是这样的,他是334线码盘,具有较高的测速精度,也就是电机转一圈输出334个脉冲,芯片上已集成了脉冲整形触发电路,输出的是矩形波,直接接单片机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编码器接口模式(寄存器) 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(PA0);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 |= 0CCER |= 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;/预分频器不分频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) 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|=0X00000044; /PA0、PA1 浮空输入12. 13. TIM2-ARR=arr; /设定计数器自动重装值 14. TIM2-PSC=psc; /预分频器15.16. TIM2-CCMR1 |= 1CCMR1 |= 1CCER |= 0CCER |= 0SMCR |= 3CR1 |= 1CNT = data;27. 28. /读计数个数29. int TIM2_Encoder_Read(void)30. 31. TIM2_Encoder_Write(0); /计数器清032. delay_ms(10); /检测时间,可调节33. return (int)(s16)(TIM2-CNT); /数据类型转换34. /记录边沿变化次数(一个栅格被记录4次)35. 复制代码这里我们只显示边沿变化次数,没有具体的算出速度。主函数1. int main(void)2. 3. / motorSpeed的范围为-100 +100;4. s16 motorSpeed = 100; 5. Stm32_Clock_Init(9); /系统时钟设置6. delay_init(72); /延时初始化7. uart_init(72,9600);/串口1初始化8. LED_Init(); /初始化与LED连接的硬件接口9. M_Init(); /初始化电机运行方向控制端口10. TIM3_PWM_Init(900,0); /不分频。PWM频率=72000/900=8Khz11. TIM2_Encoder_Init(0xffff, 0); /计数器自动重装值为最大12.13. while(1)14. 15. LED =! LED;16. Motor_Speed_Control(motorSpeed);17. printf(编码器值:%dn ,TIM2_Encoder_Read();18. 19. 复制代码5 估算验证 这里我们只是大概的估算验证测量值是否正确,不具有完全正确性。 我们设置motorSpeed = 100 ,得到测量值如下图:100.png (25.68 KB, 下载次数: 20)下载附件 保存到相册 2014-3-5 10:21 上传图5 motorSpeed = 100因为误差是不可避免的,所以看到每次检测的值都是不一样的。我们取462,因为一个光栅被记录了4次,所以在10ms内一共检测到了462/4=115.5,那么得到11.55个/ms,每ms内检测到11.55个光栅。 通过码表,记录电机输出50圈,用时50.2s,那么这时应该检测到的光栅个数为50*34(电机转34圈,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陶瓷工艺品制作师活动策划强化考核试卷含答案
- 校友录平台建设方案
- 2026年人教版初中英语九年级上册第7单元综合测试卷及答案
- 农林岗2026事业编面试模拟练习习题汇编含答案解析202
- 河北计算机岗事业编2026面试自测卷含答案
- 《心脏康复护理专家共识》解读
- 中小学预防火灾安全教育主题班会课件
- 2026年健康管理师健康信息学应用课件
- 慧择2026AI战略落地与组织转型 把AI从工具账号升级为可治理的劳动力资产 数字员工建设与治理方案
- 山东省青岛市四方区2026届中考数学仿真试卷含解析
- 广东省学校安全条例课件
- 企业薪酬激励制度设计与实施案例
- 江西省2018-2024年中考满分作文121篇
- 城市更新项目的房地产营销方案
- 地氟烷的临床应用
- 鼠疫相关知识培训课件
- 围手术期疼痛管理新进展
- 19G522-1钢筋桁架混凝土楼板图集
- 第一章地球的运动(易考易错单元卷)(解析版)
- 2024年1月自考07484社会保障学试题及答案含解析
- 医疗废弃物无害化处理与资源化利用
评论
0/150
提交评论