网站建设完成后期维护,如何将网站搭在阿里云,福建网站建设优化,建e网模型舵机#xff0c;也叫伺服电机#xff0c;在嵌入式开发中#xff0c;舵机作为一种常见的运动控制组件#xff0c;具有广泛的应用。其中#xff0c;SG90 舵机以其高效、稳定的性能特点#xff0c;成为了许多工程师和爱好者的首选#xff0c;无论是航模、云台、机器人、智能…舵机也叫伺服电机在嵌入式开发中舵机作为一种常见的运动控制组件具有广泛的应用。其中SG90 舵机以其高效、稳定的性能特点成为了许多工程师和爱好者的首选无论是航模、云台、机器人、智能小车中都有它的身影。
本文将深入探讨SG90舵机的技术规格、工作原理和使用方法为您展现 SG90 舵机的功能和无限可能。
1. 源码下载及前置阅读
本文首发良许嵌入式网https://www.lxlinux.net/e/ 欢迎关注
本文所涉及的源码及安装包如下由于平台限制请点击以下链接阅读原文下载
https://www.lxlinux.net/e/stm32/sg90-tutorial.html
如果你是嵌入式开发小白那么建议你先读读下面几篇文章。
了解不同的下载程序方法为你的嵌入式开发提供更多选择STM32下载程序的五种方法手把手让你掌握MDK的使用方式和技巧助你更高效地进行开发一文教你使用MDK开发工具从零开始轻松掌握STM32开发的必备指南零基础快速上手STM32开发手把手保姆级教程
往期精彩教程有兴趣的小伙伴可以看看。
从零开始轻松掌握STM32开发的必备指南零基础快速上手STM32开发手把手保姆级教程
深入浅出帮助您理解和应用MQTT协议万字猛文MQTT原理及案例通俗易懂的 GPIO 介绍与实践如何快速成为点灯大师
作者简介大家好我是良许博客里所有的文章皆为我的原创。下面是我的一些个人介绍欢迎交个朋友· 211工科硕士国家奖学金获得者· 深耕嵌入式11年前世界500强外企高级嵌入式工程师· 书籍《速学Linux作者》机械工业出版社专家委员会成员· 全网60W粉丝博客分享大量原创成体系文章全网阅读量累计超4000万· 靠自媒体连续年入百万靠自己买房买车。
我本科及硕士都是学机械通过自学成功进入世界500强外企。我已经将自己的学习经验写成了一本电子书超千人通过此书学习并转行成功。现在将这本电子书免费分享给大家希望对你们有帮助
电子书链接https://www.lxlinux.net/1024.html 2. SG90介绍
2.1 型号介绍
市面上常见的舵机型号有 SG90、MG90S、MG995、MG996R 等等主要是扭矩大小、工作电压大小、齿轮材质塑料或金属的不同。
一般分为180度和360度
180度可以控制旋转角度、有角度定位。上电后舵机自动复位到0度通过一定参数的脉冲信号控制它的角度。360°舵机版本不可控制角度只能控制顺时针旋转、逆时针旋转、停止和调节转速。
我们今天的主角是 SG90180度版。 2.2 工作参数及引脚介绍
工作参数如下
工作扭矩1.6kg/cm反应速度0.12 - 0.13秒/60°死区设定5us转动角度常见0°、90°、180°、360°齿轮材质尼龙塑料齿工作电压3V - 6V温度范围-30° ~ 60°
引脚接线参考如下
SG90STM32PWM 信号线橙色线任意GPIOVCC红线3.3/5VGND棕色线GND
3. SG90原理
舵机的控制信号是通过脉冲宽度调制PWM来实现的。PWM 信号的周期通常为20ms而脉冲宽度则在 0.5ms 至 2.5ms 之间变化。这个脉冲宽度与舵盘的位置呈线性关系范围从0度到180度。
当给舵机提供特定宽度的脉冲信号时输出轴会保持在相应的角度上不受外界转矩的影响直到接收到不同宽度的脉冲信号才会改变输出角度使舵盘移动到新的位置。舵机内部有一个基准电路产生周期为 20ms、宽度为 1.5ms 的基准信号。同时还有一个比较器用于将外部输入信号与基准信号进行比较以确定转动方向和幅度并生成驱动电机转动的信号。
控制电路板接收来自信号线的 PWM 控制信号然后控制电机的转动。电机带动一系列齿轮组在经过减速传动后将力量传递到输出舵盘上。舵机的输出轴与位置反馈电位计相连当舵盘旋转时位置反馈电位计也会随之变化向控制电路板输出电压信号进行反馈。控制电路板根据位置反馈信号判断当前位置并决定电机的转动方向和速度以实现目标停止。
为了控制舵机需要使用单片机来生成周期为 20ms 的脉冲信号并通过控制脉冲的高电平时间在 0.5ms 至 2.5ms 之间来控制舵机的角度。这样我们可以通过调整 PWM 信号的脉冲宽度来精确控制舵机的位置和运动。
以 SG90180度版为例那么对应的控制关系是这样的
脉冲高电平角度占空比0.5ms0°2.5%1.0ms45°5.0%1.5ms90°7.5%2.0ms135°10.0%2.5ms180°12.5%
4. 编程实战
现在我们就动手让 SG90 每秒转动一下0° - 20° - 40° - 100° - 180° 如此循环。
4.1 硬件接线
本教程使用的硬件如下
单片机STM32F103C8T6舵机SG90烧录器ST-LINK V2
接线如下
SG90STM32PWM 信号线橙色线A0VCC红线3.3/5VGND棕色线GND
烧录的时候接线如下表如果不会烧录的话可以看我之前的文章【STM32下载程序的五种方法】。
ST-Link V2STM32SWCLKSWCLKSWDIOSWDIOGNDGND3.3V3V3
接好如下图
我用的是我自己打的板子上官二号。大家可以用自己的板子是 STM32F103C8T6 就行。 4.2 舵机初始化
将舵机 PWM 引脚进行一个初始化。
void SG_Init(void)
{GPIO_InitTypeDef GPIO_InitStruct {0};__HAL_RCC_GPIOA_CLK_ENABLE();GPIO_InitStruct.Pin GPIO_PIN_0; /* PWM引脚 */GPIO_InitStruct.Mode GPIO_MODE_AF_PP; /* 复用推挽 */GPIO_InitStruct.Speed GPIO_SPEED_FREQ_LOW; /* 低速 */HAL_GPIO_Init(GPIOA, GPIO_InitStruct); /* 初始化PWM引脚 */
}
4.3 定时器初始化
我们 PWM 引脚接 A0对应的是定时器2和通道1以下是初始化代码。
void TIM2_Init(void)
{//PA0 ------ TIM2_CH1TIM_ClockConfigTypeDef sClockSourceConfig {0}; /* 定时器设置结构体 */TIM_MasterConfigTypeDef sMasterConfig {0};TIM_OC_InitTypeDef sConfigOC {0};htim2.Instance TIM2; /* 通用定时器2 */htim2.Init.Prescaler 7199; /* 预分频系数 */htim2.Init.CounterMode TIM_COUNTERMODE_UP; /* 递增计数模式 */htim2.Init.Period 199; /* 自动装载值 */htim2.Init.ClockDivision TIM_CLOCKDIVISION_DIV1; /* 时钟分频因子 */htim2.Init.AutoReloadPreload TIM_AUTORELOAD_PRELOAD_ENABLE;HAL_TIM_Base_Init(htim2);sClockSourceConfig.ClockSource TIM_CLOCKSOURCE_INTERNAL;HAL_TIM_ConfigClockSource(htim2, sClockSourceConfig);HAL_TIM_PWM_Init(htim2);sMasterConfig.MasterOutputTrigger TIM_TRGO_RESET;sMasterConfig.MasterSlaveMode TIM_MASTERSLAVEMODE_DISABLE;HAL_TIMEx_MasterConfigSynchronization(htim2, sMasterConfig);sConfigOC.OCMode TIM_OCMODE_PWM1;sConfigOC.Pulse 0;sConfigOC.OCPolarity TIM_OCPOLARITY_HIGH;sConfigOC.OCFastMode TIM_OCFAST_DISABLE;HAL_TIM_PWM_ConfigChannel(htim2, sConfigOC, TIM_CHANNEL_1);
}void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
{if(tim_baseHandle-InstanceTIM2){/* 定时器2时钟使能 */__HAL_RCC_TIM2_CLK_ENABLE();}
}
4.4 舵机控制
已知 PWM 信号的周期为20ms高电平 0.5ms 指向 0° 位置2.5ms 指向 180° 位置。如果我们要指向 angle°
2.5-0.52ms对应于180°
CCRx / (199 1) * 20 0.5 angle / 180× 2
于是 CCRx (1.0 / 9.0) * angle 5.0
void SG_Control(uint16_t angle)
{float CCRx;CCRx (1.0 / 9.0) * angle 5.0; //占空比值 1/9 * 角度 5__HAL_TIM_SET_COMPARE(htim2, TIM_CHANNEL_1, (uint16_t )CCRx);
}
4.5 主函数
主函数如下
int main(void)
{HAL_Init(); /* 初始化HAL库 */sys_stm32_clock_init(RCC_PLL_MUL9); /* 设置时钟, 72Mhz */delay_init(72); /* 延时初始化 */TIM2_Init(); /* 定时器4初始化 */SG_Init(); /* 舵机初始化 */HAL_TIM_PWM_Start(htim2,TIM_CHANNEL_1);while(1){SG_Control(0); //舵机旋转到0度HAL_Delay(1000);SG_Control(20); //舵机旋转到20度HAL_Delay(1000);SG_Control(40); //舵机旋转到40度HAL_Delay(1000);SG_Control(100); //舵机旋转到100度HAL_Delay(1000);SG_Control(180); //舵机旋转到180度HAL_Delay(1000);}
}
4.6 运行效果
SG90 每秒转动一下0° - 20° - 40° - 100° - 180° 如此循环。 5. 总结
通过了解 SG90 舵机的工作原理和特点我们可以更好地利用它的潜力为我们的项目带来更多可能性和创新。无论是初学者还是专业工程师SG90 舵机都是一个很不错的模块它可以帮助我们实现精确的位置控制和稳定的运动性能。
希望本文能够让你对 SG90 舵机有更深入的了解并且能够在你的项目中发挥出它的优势。感谢各位看官peace and love
另外想进大厂的同学一定要好好学算法这是面试必备的。这里准备了一份 BAT 大佬总结的 LeetCode 刷题宝典很多人靠它们进了大厂。 刷题 | LeetCode算法刷题神器看完 BAT 随你挑
有收获希望老铁们来个三连击给更多的人看到这篇文章
推荐阅读
程序员必备编程资料大全 程序员必备软件资源
欢迎关注我的博客良许嵌入式教程网满满都是干货 文章转载自: http://www.morning.lmnbp.cn.gov.cn.lmnbp.cn http://www.morning.pfnwt.cn.gov.cn.pfnwt.cn http://www.morning.zmpqh.cn.gov.cn.zmpqh.cn http://www.morning.wmmqf.cn.gov.cn.wmmqf.cn http://www.morning.xfrqf.cn.gov.cn.xfrqf.cn http://www.morning.hjlwt.cn.gov.cn.hjlwt.cn http://www.morning.yrddl.cn.gov.cn.yrddl.cn http://www.morning.kcnjz.cn.gov.cn.kcnjz.cn http://www.morning.mttck.cn.gov.cn.mttck.cn http://www.morning.qtzwh.cn.gov.cn.qtzwh.cn http://www.morning.fmrwl.cn.gov.cn.fmrwl.cn http://www.morning.spbp.cn.gov.cn.spbp.cn http://www.morning.fnpyk.cn.gov.cn.fnpyk.cn http://www.morning.wgzzj.cn.gov.cn.wgzzj.cn http://www.morning.xesrd.com.gov.cn.xesrd.com http://www.morning.rfljb.cn.gov.cn.rfljb.cn http://www.morning.llxns.cn.gov.cn.llxns.cn http://www.morning.nbqwt.cn.gov.cn.nbqwt.cn http://www.morning.bcngs.cn.gov.cn.bcngs.cn http://www.morning.thnpj.cn.gov.cn.thnpj.cn http://www.morning.cgbgc.cn.gov.cn.cgbgc.cn http://www.morning.mcjp.cn.gov.cn.mcjp.cn http://www.morning.tfpqd.cn.gov.cn.tfpqd.cn http://www.morning.phgz.cn.gov.cn.phgz.cn http://www.morning.mxbks.cn.gov.cn.mxbks.cn http://www.morning.tbzcl.cn.gov.cn.tbzcl.cn http://www.morning.fbtgp.cn.gov.cn.fbtgp.cn http://www.morning.gcthj.cn.gov.cn.gcthj.cn http://www.morning.wwnb.cn.gov.cn.wwnb.cn http://www.morning.bpmtl.cn.gov.cn.bpmtl.cn http://www.morning.tjndb.cn.gov.cn.tjndb.cn http://www.morning.bnbzd.cn.gov.cn.bnbzd.cn http://www.morning.fthcq.cn.gov.cn.fthcq.cn http://www.morning.ai-wang.cn.gov.cn.ai-wang.cn http://www.morning.wphfl.cn.gov.cn.wphfl.cn http://www.morning.wpydf.cn.gov.cn.wpydf.cn http://www.morning.rbmnq.cn.gov.cn.rbmnq.cn http://www.morning.gtkyr.cn.gov.cn.gtkyr.cn http://www.morning.tfwr.cn.gov.cn.tfwr.cn http://www.morning.ksjmt.cn.gov.cn.ksjmt.cn http://www.morning.tpqzs.cn.gov.cn.tpqzs.cn http://www.morning.hmnhp.cn.gov.cn.hmnhp.cn http://www.morning.qrzwj.cn.gov.cn.qrzwj.cn http://www.morning.lbgfz.cn.gov.cn.lbgfz.cn http://www.morning.jqlx.cn.gov.cn.jqlx.cn http://www.morning.xyjlh.cn.gov.cn.xyjlh.cn http://www.morning.gkdqt.cn.gov.cn.gkdqt.cn http://www.morning.qfmns.cn.gov.cn.qfmns.cn http://www.morning.dzzjq.cn.gov.cn.dzzjq.cn http://www.morning.hjbrd.cn.gov.cn.hjbrd.cn http://www.morning.rhjhy.cn.gov.cn.rhjhy.cn http://www.morning.dpppx.cn.gov.cn.dpppx.cn http://www.morning.ykwqz.cn.gov.cn.ykwqz.cn http://www.morning.lrmts.cn.gov.cn.lrmts.cn http://www.morning.znrlg.cn.gov.cn.znrlg.cn http://www.morning.dzyxr.cn.gov.cn.dzyxr.cn http://www.morning.wmmtl.cn.gov.cn.wmmtl.cn http://www.morning.zlnyk.cn.gov.cn.zlnyk.cn http://www.morning.jwgmx.cn.gov.cn.jwgmx.cn http://www.morning.bnpcq.cn.gov.cn.bnpcq.cn http://www.morning.rnzjc.cn.gov.cn.rnzjc.cn http://www.morning.ltpph.cn.gov.cn.ltpph.cn http://www.morning.yldgw.cn.gov.cn.yldgw.cn http://www.morning.wmdqc.com.gov.cn.wmdqc.com http://www.morning.wfspn.cn.gov.cn.wfspn.cn http://www.morning.lhldx.cn.gov.cn.lhldx.cn http://www.morning.ykwgl.cn.gov.cn.ykwgl.cn http://www.morning.nkmw.cn.gov.cn.nkmw.cn http://www.morning.bwxph.cn.gov.cn.bwxph.cn http://www.morning.mxnhq.cn.gov.cn.mxnhq.cn http://www.morning.cttgj.cn.gov.cn.cttgj.cn http://www.morning.bmzxp.cn.gov.cn.bmzxp.cn http://www.morning.bmsqq.cn.gov.cn.bmsqq.cn http://www.morning.fbzyc.cn.gov.cn.fbzyc.cn http://www.morning.ygwyt.cn.gov.cn.ygwyt.cn http://www.morning.hjwxm.cn.gov.cn.hjwxm.cn http://www.morning.wwgpy.cn.gov.cn.wwgpy.cn http://www.morning.qjldz.cn.gov.cn.qjldz.cn http://www.morning.mqxzh.cn.gov.cn.mqxzh.cn http://www.morning.fqklt.cn.gov.cn.fqklt.cn