MG996R 360°舵机的使用

MG996R 360°舵机的使用

MG996R的介绍

360°的舵机不能控制角度,只能控制转动方向和速度,一般正反转都有五个速度。其与直流电机类似,区别在于转速不能连续可调但更加稳定。

  1. 接线方法
    棕色:GND,与单片机共地
    红色:VCC(4.8V—7.2V),除测试不建议直接取单片机5V
    黄色:PWM(脉冲方波)输入管脚
  2. 控制方法
    在这里插入图片描述

代码说明

采用通用定时器的PWM输出控制舵机,周期为20ms,通过改变占空比改变方向和转速。以定时器3的通道一为例。

  1. 图形配置
    在这里插入图片描述

  2. 重要语句
    开启PWM中断
    HAL_TIM_PWM_Start_IT(&htim3, TIM_CHANNEL_1);
    改变占空比
    __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,Pulse);

  3. 代码
    改变方向和转速的函数

void Turn_Speed_Cro(uint16_t direc,uint16_t speed)
{
	if(direc==Dire_Right)
	{
		switch(speed)
		{
		case 5:__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,1000);break;
		case 4:__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,1100);break;
		case 3:__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,1200);break;
		case 2:__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,1300);break;
		case 1:__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,1400);break;
		case 0:__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,1500);break;
		}
	}
	else
	{
		switch(speed)
		{
		case 1:__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,1600);break;
		case 2:__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,1700);break;
		case 3:__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,1800);break;
		case 4:__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,1900);break;
		case 5:__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,2000);break;
		}
	}

}

1~5为依次增大的转速,0为停止

中断回调函数

void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
{
	Turn_Speed_Cro(Dire_Right,0);
	n++;

}

声明和宏定义

#define Dire_Right 1//方向为顺时针
#define Dire_Left 2//方向为逆时针

参考文档:https://blog.csdn.net/luoxianfadde/article/details/124534646

  • 6
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值