快速了解MG90S舵机

一、MG90S的简单了解

MG90S是一个360度舵机,本质上都是通过输出pwm波来控制的。不过与SG90舵机不同,此舵机只能控制转动的方向速度,并不能控制转动的角度!!!(本人因为看了错误的博客导致研究的半天如何控制角度。。。)

                        实物长这个样子

二、工作原理

舵机的工作原理非常简单,就是通过单片机输出的pwm波来控制,舵机会根据信号的占空比来计算需要转动的角度,而mg90s是不能控制转动的角度,因此它的占空比是用来控制舵机转动的速度和方向。

脉冲周砌(20ms)速度
0.5ms
1.0ms
1.5ms停止

2.0ms

2.5ms

1.5ms是一个分界线,方向会在再此发送改变,距离1.5ms这个阈值越近,舵机转动速度越慢,反之越快。但上限2.5ms 下限是0.5ms ,超过阈值舵机将不工作。

三、接线

由上面的实物图可以看到,舵机就三根线 分别是 黄、红、棕

黄线 -->pwm信号线(控制线)

红线-->VCC5v

棕线-->GND

四、初始化配置

我使用的是stm32f4的板子,以此为例

mg90s的基础配置

void MG90s_PWM_Init(u16 arr,u16 psc)
{
    GPIO_InitTypeDef GPIO_InitStruct;
    TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
    TIM_OCInitTypeDef TIM_OCInitStruct;
    
    RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOA, ENABLE );
    RCC_APB1PeriphClockCmd( RCC_APB1Periph_TIM2, ENABLE );
    
    GPIO_PinAFConfig( GPIOA, GPIO_PinSource5, GPIO_AF_TIM2 );  //GPIOA5复用为定时器2
    
    GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5;
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
    GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_100MHz;
    GPIO_Init( GPIOA, &GPIO_InitStruct );
    
    TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1;
    TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;
    TIM_TimeBaseInitStruct.TIM_Period = arr;
    TIM_TimeBaseInitStruct.TIM_Prescaler = psc;
    TIM_TimeBaseInit( TIM2, &TIM_TimeBaseInitStruct );
    
    TIM_OCInitStruct.TIM_OCMode = TIM_OCMode_PWM1; //选择定时器模式:TIM脉冲宽度调制模式2
    TIM_OCInitStruct.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能
    TIM_OCInitStruct.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性低
    TIM_OC1Init( TIM2, &TIM_OCInitStruct );
    
    TIM_OC1PreloadConfig( TIM2, TIM_OCPreload_Enable );  //使能TIM2在CCR1上的预装载寄存器
    TIM_ARRPreloadConfig( TIM2,ENABLE );//ARPE使能
    TIM_Cmd( TIM2, ENABLE );  //使能TIM2

}

定时器初始化配置

我使用的是TIM2通用定时器。系统时钟为84MHZ 

MG90s_PWM_Init(200-1,8400-1); 

设置占空比

TIM_SetCompare1(TIM2,speed);

speed 填你需要设置的速度大小,这样你的舵机就能流利工作起来啦

  • 12
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A.K.M

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值