电赛控制类题电机编码器介绍| “朝闻道”知识分享大赛

Instinct616 2023-12-24 01:12:52

这是我参加朝闻道知识分享大赛的第三篇文章

目录

一.内容说明

二.编码器介绍

三.cubemx配置

四.代码部分


一.内容说明

 本期将为大家介绍怎么如果编码器进行计数值变化以及测量计算转速从而达到良好得速度闭环控制效果。

二.编码器介绍

1.什么是编码器

旋转编码器,也称为轴编码器,是一种将轴或轴的角度位置或运动转换为模拟或数字输出信号的机电设备。

旋转编码器广泛用于需要监视或控制机械系统(或两者兼而有之)的应用,包括工业控制、机器人、摄影镜头、计算机输入设备(如光学机械鼠标和轨迹球)、受控应力流变仪和旋转雷达平台。

2.正交编码器两路的脉冲输出,在判断电机的正反转时,是更加A、B两相的波形来的,其实就是看哪路波形超前,这里用32的定时器编码器功能就只需要去查计数器的方向位来判断电机的正反转。

3.(1)脉冲计数法,直接根据单位时间内所采集到的脉冲数作为电机的转速
编码器在实际的测数使用时确实是根据,电机转一圈:编码器转多少圈的方式来实际测量电机的转速的,但是在其本质就还是编码器的输出的脉冲数,所以直接计算编码器的单位时间的脉冲数推算电机的速度是一样的,数据来的比较直接、精准。
4.编码器速度的读取
前面已经说过了编码器的脉冲计数对应电机速度的数据处理方法,这里就继续说明了。
速度是单位时间为前提的,我这里采用的是直接计算单位时间对应的脉冲数来推算电机的速度的。这里的单位时间也就是采样率的意思,就是我们间隔多少时间去采集然后清零脉冲计数值一次。这里的采样率不能太高,也不能太低。对电机的控制,一般采样率=5毫秒越小就越接近瞬时速度,


三.cubemx配置

设置定时器2和定时器4为编码器模式

四.代码部分

编码器代码:

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
	
	if(htim == &htim1)//500HZ 2ms中断一次,用于电机编码器以及pid控制
	{
		TimerCount++;
		if(TimerCount %5 == 0)//10ms 执行一次
		{
			 Encode1Count = (short)__HAL_TIM_GET_COUNTER(&htim4);
		   Encode2Count = (short)__HAL_TIM_GET_COUNTER(&htim2);
		   __HAL_TIM_SET_COUNTER(&htim4,0);//将定时器1计数清零
		   __HAL_TIM_SET_COUNTER(&htim2,0);//将定时器2计数清零
		//获得单编码器计数值变化量
		
		   Speed1 = (float)Encode1Count*100/9.6/11/4/2.5;
		   Speed2 = (float)Encode2Count*100/9.6/11/4/2.5;
			 
			 
		}
//		if(TimerCount %10 == 0)//20ms 执行一次
//		{
////		  Motor_SetDIANPING(20,20);
//			Mileage += 0.02*Speed1*14;
////			Motor_Set(PID_realize(&pidMotor1Speed, Motor1Speed),PID_realize(&pidMotor2Speed, Motor2Speed));
////			Motor_SetDIANPING(PID_realize(&pidMotor1Speed, Motor1Speed),PID_realize(&pidMotor2Speed, Motor2Speed));
//			Motor_SetPWM(PID_realize(&pidMotor1Speed, Speed1),PID_realize(&pidMotor2Speed, Speed2));
//		  TimerCount=0;
//		}
	}
	if(htim == &htim3)
	{
		upCount++;
	}
}

主函数调用代码:

	HAL_TIM_Encoder_Start(&htim2,TIM_CHANNEL_ALL);//开启定时器2(编码器)
	HAL_TIM_Encoder_Start(&htim4,TIM_CHANNEL_ALL);//开启定时4(编码器)

通过此代码打开编码器通道。

...全文
70 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
设计任务: 一长约 60cm~70cm 的细管上端用万向节固定在支架上,下方悬挂一组(2~4 只)直流风机,构成一风力摆。风力摆上安装一向下的激光笔,静止时,激光笔的下端距地面不超过 20cm。设计一测控系统,控制驱动各风机使风力摆按照一定规律运动,激光笔在地面画出要求的轨迹。具体要求可参看设计任务书(附件)。 设计方案简介: 本系统采用STC12C5A60S2为主控芯片,通过MPU6050传感器提供反馈信息、采用PID控制算法调整轴流风机的工作状态、在液晶和按键的作用下显示并切换工作模式,形成一闭环测控系统。该测控系统通过控制驱动各风机,使风力摆按照一定规律运动,同时保证摆杆下方悬挂的激光笔能在地面画出要求的轨迹。 实物图: Moore8 摩尔吧2019全国大学生电子设计竞赛系列培训课程,欢迎加入摩尔吧电赛交流QQ群,获取免费听课权限和海量资料:836323769 全套课程(含通用篇及各专项提升篇): https://www.moore8.com/series/package/diansai2019 控制类专项:共8节课,4月6日起,每周六播出 https://www.moore8.com/series/package/control 1、【直播时间:2019/04/06 20:00】【控制类专项篇-1】2019 电赛:控制类详解及 知识点分析:https://www.moore8.com/courses/2621 2、【直播时间:2019/04/13 20:00】【控制类专项篇-2】2019 电赛:STM32 介绍及开 发流程:https://www.moore8.com/courses/2622 摩尔吧电赛交流QQ 群,:836323769 www.moore8.com 3、【直播时间:2019/04/20 20:00】【控制类专项篇-3】2019 电赛:STM32 片上常用 外设资源详解:https://www.moore8.com/courses/2623 4、【直播时间:2019/04/27 20:00】【控制类专项篇-4】2019 电赛:常用传感器模块 1 (红外、超声波、编码器):https://www.moore8.com/courses/2624 5、【直播时间:2019/05/04 20:00】【控制类专项篇-5】2019 电赛:常用传感器模块 2 (陀螺仪和加速度计):https://www.moore8.com/courses/2625 6、【直播时间:2019/05/11 20:00】【控制类专项篇-6】2019 电赛:电机及其驱动电路: https://www.moore8.com/courses/2626 7、【直播时间:2019/05/18 20:00】【控制类专项篇-7】2019 电赛:滤波及PID 算法详解: https://www.moore8.com/courses/2627 8、【直播时间:2019/05/25 20:00】【控制类专项篇-8】2019 电赛:软件编程思想: https://www.moore8.com/courses/2628

1,040

社区成员

发帖
与我相关
我的任务
社区描述
中南民族大学CSDN高校俱乐部聚焦校内IT技术爱好者,通过构建系统化的内容和运营体系,旨在将中南民族大学CSDN社区变成校内最大的技术交流沟通平台。
经验分享 高校 湖北省·武汉市
社区管理员
  • c_university_1575
  • WhiteGlint666
  • wzh_scuec
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎各位加入中南民族大学&&CSDN高校俱乐部社区(官方QQ群:908527260),成为CSDN高校俱乐部的成员具体步骤(必填),填写如下表单,表单链接如下:
人才储备数据库及线上礼品发放表单邀请人吴钟昊:https://ddz.red/CSDN
CSDN高校俱乐部是给大家提供技术分享交流的平台,会不定期的给大家分享CSDN方面的相关比赛以及活动或实习报名链接,希望大家一起努力加油!共同建设中南民族大学良好的技术知识分享社区。

注意:

1.社区成员不得在社区发布违反社会主义核心价值观的言论。

2.社区成员不得在社区内谈及政治敏感话题。

3.该社区为知识分享的平台,可以相互探讨、交流学习经验,尽量不在社区谈论其他无关话题。

试试用AI创作助手写篇文章吧