舵机不受控制?

市场舵机大体分为360°舵机和180°舵机。

如果你的舵机一直在旋转,丝毫没有停下来的意思。那么,你手上的舵机很有可能是360的舵机。

给他一个固定占空比信号,想控制他旋转到一个固定角度。(这是180舵机控制方法),该方法不可以用来控制360舵机。

360度舵机与180°舵机的区别是:给180°舵机一个PWM信号,舵机会转到一个特定角度,而给360度舵机一个PWM信号,舵机会以一个特定的速度转动,类似与电机。但与电机不同的是,360舵机是闭环控制,速度控制稳定。

接下来我来讲解360度的舵机控制方法:

在这里插入图片描述

(前提是一个周期为20ms的)PWM信号与360舵机转速的关系
0.5ms----------------正向最大转速;
1.5ms----------------速度为0;
2.5ms----------------反向最大转速;
与180度舵机比较,需要明确的是360度舵机无法像180度舵机一样控制角度,它只能控制方向和速度。

下面是代码:

tim.c:配置pwm周期:(我用的是tim2,时钟72M)

  htim2.Instance = TIM2;
  htim2.Init.Prescaler = 7199;
  htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
  htim2.Init.Period = 199;
  htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;

main.c:

HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);//开启pwm输出


//正转90°

__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_1,5);//舵机正向旋转
HAL_Delay(90);
__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_1,15);//舵机停止


//反转90度
__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_1,25);//舵机反向旋转
HAL_Delay(90);
__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_1,15);//舵机停止


通过控制旋转时间就可以控制舵机的旋转角度啦。

注意:舵机的工作电压5v,不可3.3V供电。还有就是注意接线。

舵机的控制还有问题的话,欢迎留言。
 

  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值