900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 霍尔编码器测速

霍尔编码器测速

时间:2022-04-27 17:50:55

相关推荐

霍尔编码器测速

内容主要是我自己的学习笔记,有些内容考虑了我个人的情况。

编码器介绍

这里介绍的是霍尔编码器,这个编码器一共由两个霍尔开关传感器+铁氧体磁环。霍尔开关传感器是霍尔效应制作的一个磁场检测开关。

Cubemx配置

忽略掉常规的配置,一共主要一共使用了3个定时器,一个串口,时钟频率设置为168M

定时器1 PWM输出 通道1及其互补通道

1

最好把速度设置为高

2 定时器3 编码输出

选择编码器模式,勾选中断,其他不用管

3定时器7 作为计时

在我的配置中,每隔一秒进入一次中断

配置中断

代码

初始化

HAL_TIM_Base_Start(&htim1);/* 启动定时器通道和互补通道PWM输出 */HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); //HAL_TIMEx_PWMN_Start(&htim1,TIM_CHANNEL_1);//开启定时器Pwm通道1互补通道HAL_TIM_Encoder_Start(&htim3, TIM_CHANNEL_1); // HAL_TIM_Encoder_Start(&htim3, TIM_CHANNEL_2); // HAL_TIM_Base_Start_IT(&htim7);// HAL_TIM_Encoder_Start(&htim3, TIM_CHANNEL_ALL);start_flag=1;/* 通用定时器初始化并配置输入捕获功能 */__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,0);//控制转速和方向

中断函数 重要代码

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){static uint32_t count=0;if(start_flag) // {time_count++; // ??1ms×??ˉ??ò?if(time_count==1000) // 1s{/* Get the current direction */uwDirection = __HAL_TIM_IS_TIM_COUNTING_DOWN(&htim3);CaptureNumber=__HAL_TIM_GET_COUNTER(&htim3);printf("当前编码器定时器的计数方向:%d\n",uwDirection);printf("输入捕获值:%d\n",CaptureNumber);printf("1s内编码器的计数值:%d\n",CaptureNumber>=count?CaptureNumber-count:CaptureNumber+65535-count);printf("电机的转动速度:%0.2f\n",(float)(CaptureNumber>=count?CaptureNumber-count:CaptureNumber+65535-count)/13/30/4);count=CaptureNumber;time_count=0;}}}

其他

1 实现打印函数

usart.c中

int fputc(int ch, FILE *f){HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);return ch;}int fgetc(FILE * f){uint8_t ch = 0;while(HAL_UART_Receive(&huart1,&ch, 1, 0xffff)!=HAL_OK);return ch;}

usart.h

一定记得声明 #include <stdio.h>

重要原理

在之前配置的过程中,可以参考以下两篇文章。链接在末尾,我觉得我之前比较难懂的地方在于到底是如何进行计算的,一共有两种方法,我使用的是编码器接口。

编码器的A B相会输出像上面的信号,在一个周期内,他可以计数4个脉冲。他的真实含义是相对信号的电平计数模式。什么是相对信号?其实就是CHA相对CHB的的电平或者CHB相对CHA的电平。

我们来分析下这行代码,这是我之前不能理解的。

(float)(CaptureNumber>=count?CaptureNumber-count:CaptureNumber+65535-count)/13/30/4

前面一部分就是一圈的脉冲数,13和30,4为什么要除以这些,13表示铁氧气磁环上面有多少对极,30表示减速电机的比值,表示一个周期4个脉冲。

再记录最后一个

/QWQ_DIODA/article/details/116519580?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162813212516780255239475%2522%252C%2522scm%2522%253A%25220713.130102334.pc%255Fall.%2522%257D&request_id=162813212516780255239475&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-18-116519580.first_rank_v2_pc_rank_v29&utm_term=+%E9%9C%8D%E5%B0%94%E7%BC%96%E7%A0%81%E6%B5%8B%E9%80%9F&spm=1018.2226.3001.4187

/weixin_44270218/article/details/114045057?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162813191116780271548067%2522%252C%2522scm%2522%253A%25220713.130102334.pc%255Fall.%2522%257D&request_id=162813191116780271548067&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-12-114045057.first_rank_v2_pc_rank_v29&utm_term=HAL+%E7%BC%96%E7%A0%81%E6%B5%8B%E9%80%9F&spm=1018.2226.3001.4187

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。