从模式控制器关于采集分析编码器数据的实验

一、实验目的

通过STM32的TIM从模式控制器(Slave Mode Controller)实现编码器信号。


二、编码器接口原理

编码器简介

本次实验使用的是EC11增量式编码器

A、B负责向外输出数据,D、E是一个按钮,在本次实验中不使用按钮功能。在轴进行转动时带动金属片一同进行顺时针或逆时针转动,A、B触电可以并联一个高电平上拉电阻,C引脚接地当触点在金属盘上是A、B输出低电平,当触点悬空时A、B输出高电平。在金属盘持续转动下A、B引脚会输出一个波形。

A、B的触点是有前后的,在金属盘顺时针转动的时候A先离开金属盘,B后离开金属盘,这样生成的两个波形A的波形会先出现上升沿,B的上升沿落后A。逆时针时B的上升沿领先于A。我们通过这种差异就能判断出金属盘的旋转方向。


实验原理

我们通过下面这个图来讲解实验原理

我们分别将A、B的信号对应发送到CH1和CH2通道,经过上升沿处理,CH1通道的波通过TI1FP1发送到从模式控制器,CH2通道的波通过TI2FP2发送到从模式控制器,由从模式控制器处理以时钟源(TRIC)的形式提供给时基单元。当轴顺时针或逆时针旋转时CNT会产生递增或递减。


三、硬件连接 

四、STM32CubeMX配置

TIM设置

编码器设置

编码器模式选择

时基单元参数设置

通道参数设置

我们在选着沿边检测时一定要注意,选择上沿信号正常,选择下沿信号取反。

均选择上升沿

串口设置

五、代码编写

  HAL_TIM_Encoder_Start(&htim3,TIM_CHANNEL_1);//打开编码器通道1
  HAL_TIM_Encoder_Start(&htim3,TIM_CHANNEL_2);//打开编码器通道2

  while (1)
  {
		uint16_t cnt = __HAL_TIM_GET_COUNTER(&htim3);//获取CNT的值
		
		UART_Printf("Enocoder = %u\r\n",cnt);//向串口发生格式化数据
		
		HAL_Delay(200);
   
  }

}

六、实验现象

顺时针转动轴时串口接收窗口的数值变大,逆时针数字变小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值