| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 第九章 SG90伺服舵机模块的使用 -> 正文阅读 |
|
[嵌入式]第九章 SG90伺服舵机模块的使用 |
上一章介绍了气体检测传感器,可以检测室内的有害气体浓度,当室内有害气体浓度超标或者温度过高时,我们一般都会开窗通风,那就需要一个执行模块来执行开窗或者关窗的动作。所以这章介绍一款舵机模块,来模拟开窗或者关窗操作。 下图就是SG90舵机模块图片,图中方框的部位时舵机的摆臂,这个摆臂可以用来模拟窗的打开和关闭,下面会有视频展示。 ?该模块是利用定时器输出周期为20ms的PWN信号来驱动摆臂摆动,而摆臂摆动的角度与一个周期(20ms)内的高电平持续时间有关,具体如下图所示,左边的时间是一个周期(20ms)内高电平的时间,右边是所对应的是转动角度。 下面这图是通过逻辑分析仪抓出来的PWN波形,图中1到3的时间约为20ms,即周期为20ms,1到2的时间是这个周期内高电平的持续时间,1到2的时长决定了舵机模块的摆臂转动几度。提示:如果不了解定时器PWN相关知识,可以去哔哩哔哩搜索? 野火STM32 去学习定时器相关内容。 舵机模块到手后,就可以开整了,首先模块上引出了3根线,分别是连接5V的VCC引脚,接地的GND引脚和接收PWN信号的信号线。关注了公众号的同学可以发送“第九章”获取资料链接,没有关注的同学,评论区留下邮箱,按照资料里提供的接线图,用杜邦线将SG90舵机模块与STM32F103C8T6连接起来,然后将提供的代码编译并烧录进STM32F103C8T6单片机即可看到效果。 接下来讲一下代码。 第7行 uint8_t?Angle 声明变量Angle用来存储舵机要转动的角度。 第9行 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2) 设置中断优先级分组。 第11行 delay_init( ) 初始化延时函数,执行这条语句后,延时效果才会准确。 第13行 Servo_Init() 函数内有两个函数(下图所示):TIM2_Init(SERVO_TIM_ARR,SERVO_TIM_PSC)?初始化定时2的2通道输出周期为20ms的PWN信号;Servo_angle(5) 是设置舵机模块转动5°,我们后面都是用Servo_angle( )函数来设置舵机的转动,而转动的角度由括号里的参数值决定,参数值可写0~180(提醒:Servo_angle( )函数内部做了保护措施——当参数值小于5时,舵机转动角度不会小于5°,参数值大于175°时,舵机转动角度不会大于175°)。 ?第15~28行 实现舵机从5°开始转动到175°,然后从175°转动到5°。实现舵机转动的函数就是第19行和第24行的Servo_angle( )函数,想要转动的角度写在括号里即可,就这么简单。 例程实现效果如下: ?正好第八章我们实现OLED显示环境的温湿度、二氧化碳和甲醛的浓度,现在顺便将SG90舵机模块的功能移植到第八章的代码中,实现当 CO2浓度大于500ppm时打开窗户,CO2浓度小于420ppm时关闭窗户,下面的视频是演示移植的过程。 提示:视频中有错,CO2浓度是ppm而不是ppd 效果如下所示: (温湿度模块坏了,所以温湿度数值显示为0,代码是没问题的,视频中实物制作很简陋,只是起演示作用,自行制作实物时,可以做的完美一点) |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 21:40:29- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |