STM32CubeMX(09)MG90S舵机驱动实验

news/2024/11/24 18:54:39/

在这里插入图片描述

文章目录

  • 前言
  • 一、舵机是什么?
  • 二、STM32CubeMX配置
    • 2.1时钟树配置
    • 2.2定时器配置
    • 2.3生成代码
  • 三、代码编写
  • 四、测试结果
    • 注意:
  • 总结


前言

今天我们来学习使用一下舵机,并用STM32CubeMX配置,STM32F407ZGT6来驱动舵机
,那么对于我们使用者来说我们只关心让他如何动起来,我们并不是很关心他的内部结构。
当然感兴趣的大家也可以看看这一篇:舵机详解

一、舵机是什么?

百度百科这样讲:
舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。在高档遥控玩具,如飞机、潜艇模型,遥控机器人中已经得到了普遍应用。
简单的来说:就是我通过控制PWM波的脉宽从而来控制舵机的转动角度
一般来说:
舵机的控制信号为周期是 20ms (50Hz)的脉宽调制(PWM)信号,其中脉冲宽度从 0.5ms-2.5ms
很明显:脉宽越大,转动角度越大。当然不能超过他最大脉宽,也不能否小于最小脉宽.
以某宝上的SG90S舵机为例
有图有真相,已经说的非常清楚了。
舵机的控制一般需要一个20ms左右的时基脉冲,就是说需要一个50Hz的PWM波,
该脉冲的高电平部分一般是0.5ms–2.5ms。以180°的舵机为例,有如下对应关系
他是按那个顺时针来算的,最左边是-90°,最右边是90°,一共180°,当然也有360°的舵机
0.5ms-------------负90°
1.0ms-------------负45°
1.5ms-------------0°
2.0ms-------------正45°
0.5ms-------------正90°
在这里插入图片描述
在这里插入图片描述

二、STM32CubeMX配置

那么知道了舵机的驱动方式,我们直接在STM32CubeMX配置就行了,首先RCC和SYS还有时钟树的配置不用多说。最重要的还是定时器。那我们找一个有PWM输出功能的定时器1

2.1时钟树配置

在这里插入图片描述
在这里插入图片描述

2.2定时器配置

那么我们在定时器这一篇也详细介绍过F407的定时器
STM32CubeMX(02)HAL库之定时器
定时器1是挂在APB2总线上的,说明定时器1的时钟频率是168MHz,并且计数器是16位的,分频器也是16位的。
在这里插入图片描述
在这里插入图片描述
那么我们把我们定时器1的通道2打开,分频系数为3360,计数值为1000
那么最后定时的时间就是168000000/(3360*1000)=50Hz就是20ms
在这里插入图片描述
在这里插入图片描述
我们的脉宽设为100,100是相对于计数值1000来说的,也就是100/1000=1/10,就是1/10的占空比,那么就是2ms,就是45°,我们使用默认的引脚PB0就可以了。
在这里插入图片描述
在这里插入图片描述

2.3生成代码

配置完了我们就生成代码
在这里插入图片描述
在这里插入图片描述

三、代码编写

通过生成的文件我们看到我们配置的是没有问题的
在这里插入图片描述
加的东西很少,我们这里测试就是改变一下占空比,用到了
__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_2,50);这个库函数可以改变CCR的值,就是改变占空比,占空比等于CCR/Counter,这里Couter我们设置为1000.
那么这个程序实现了什么功能,就是每隔500ms,逆时针旋转45°,然后又顺时针旋转45°回来。
在这里插入图片描述

在这里插入图片描述

四、测试结果

注意:

千万不要用电脑供电,不然电脑USB串口容易烧,因为我们知道电生磁,磁也能生电,舵机里面有电机,电机里面有线圈。电机在正转或者反转过程中会反过来给电路充电,这样的话电流不稳定。所以说舵机最好单独供电,不要用单片机的5V给舵机供电,实际测试过程中用单片机的5V给舵机供电,发现单片机的电源灯时亮时暗,说明电流很不稳定。

改为单独供电后,工作稳定,非常有力。

在这里插入图片描述

总结

学会了如何使用舵机之后我们可以利用舵机进行一下小制作,比如说简易小车,智能门锁,远程关灯等(懒人福音)。这就需要大家发挥自己的聪明才智,不断探索了。
在这里插入图片描述

参考博文:
1.舵机详解
2.MG90S舵机驱动原理和程序代码


http://www.ppmy.cn/news/480006.html

相关文章

stc8a控制MG90S舵机

1、实验目的: 利用硬件PWM进行控制舵机; 硬件PWM使用P6端口; 2、实验设备: 单片机开发板stc8a8k最小核心板; 7pin的OLED MG90S舵机; 3、原理: 舵机的控制原理,  舵机的伺服系统由可…

转转前端周刊第七十期

转转前端周刊 本刊意在将整理业界精华文章给大家,期望大家一起打开视野 如果你有发现一些精华文章想和更多人分享,可以点击我们的公众号名称,将文章链接和你的解读文案发给我们!我们会对内容进行筛选和审核,保留你的推…

Vue 中防止用户频繁点击按钮的优秀实践

系列文章目录 文章目录 系列文章目录前言一、为什么要防止用户频繁点击按钮?二、优秀的防止用户频繁点击按钮的实践方法1.禁用按钮2.添加防抖函数3.添加节流函数 总结 前言 在 Vue 开发中,我们常常会遇到用户频繁点击按钮的问题,这不仅会导致…

从PETA数据集中提取性别

0、前言 本文提供了一个从PETA数据集中提取性别属性的方法。 1、方法 通过以下代码,可以从数据集中解析出每个图片的属性,并根据性别存放到不同文件夹: """ parse persons gender from PETA """ import gl…

android 人脸解锁 锁屏动画,人脸保护锁(人脸识别锁屏)

这是一款十分炫酷的锁屏工具,还记得电影中的特工所用的人脸识别锁吗?这款应用也能让你过过瘾!人脸识别锁屏安卓版是一款用人脸做密码来打开手机屏保锁的一个APP。不仅可以作屏保锁,也可以单独保护某些重要程序不被偷窥,例如查看短…

android 紧急拨号界面,紧急拨号解锁

摘要 腾兴网为您分享:云上广水,云南人社12333app,缘之空,酷乐家软件,找我测,酷盘,msn聊天软件,新视通会议系统,剑网三体验服,迷你pdf转word,意大利炮表情包,星…

iOS VS Android ,10年之战,谁是最后赢家?

2019独角兽企业重金招聘Python工程师标准>>> 2007 年,功能机巨头林立的时代,苹果在 Macworld 大会上公布了 iOS 系统。同一年,Google 与多家制造商、开发商、电信运营商和芯片制造商联合创立开放手持设备联盟(OHA&…

iOS最全的三方库、插件、博客汇总

目录 UI 日历三方库 下拉刷新 模糊效果 富文本 图表 颜色 表相关(TabbleView、Tabbar、即时聊天界面) TableView CollectionView 隐藏与显示 HUD与Toast 对话框 状态栏 导航栏 设置 Switch Category 主题 电影选座 瀑布流 菜单 Tabbar 进度 小红点 page 轮播 时间选择器 其他UI…