STM32+SG90舵机详解(详细)

2023-10-31

上一次使用舵机只是草草了解,只大概知道是pwm控制的,这次又使用到了舵机,本以为复制上次代码就可以调试成功,没想到却弄了很久。

我使用的是STM32f103c8t6,用的是定时器4。这个f1板子的定时器各个通道io口如下图所示:

在开始之前我们要了解控制舵机需要的一个周期是多少秒,是20ms(毫秒),这就意味着,我们配置输出的一个周期必须是20ms,这就需要我们经过分频重装载值来决定。

当初我在这里卡了很久,因为不会计算这个,上网看了很多文章,大家讲的不是很明白,所以我今天详细和大家说说如何分频和写重装载值

首先,我的板子主频是72Mhz,这就意味这一秒种可以计72Mhz的数,可定时器只有16位呀,他的最大值也只是65535,而72M就是72 000k就是72 000 000个数,所以我们必须分频!

那该分多少呢,你想分多少分多少,只要你最后重装载值能圆回来就好。为了好计算这里我分72,就相当于72M主频除72

72M除72=1M /s //经过72分频后就是1秒计1M个数

1M=1 000k=1000 000/s //而1M又等于1 000 000个数,所以1s能计1000 000个数

1s=1 000ms=1000 000us //而1s又等于1000 000us

所以1us=1;

所以经过分频以后我们计一个数的时间就是1us,是吧。

那我们既然已经知道计一个数的时间,也知道我们需要20ms,那我们要计多少个数才有20ms呢,而这个数就是我们要填的重装载值。

既然1us=1

所以20ms=20000us=20000

所以我们要计20000个数才正好是20ms,所以经过72分频下的重装载值要填20000;

这时候我们看资料上是这样写的:

t = 0.5ms——————-舵机会转到 0 °

t = 1.0ms——————-舵机会转到 45°

t = 1.5ms——————-舵机会转到 90°

t = 2.0ms——————-舵机会转到 135°

t = 2.5ms——————-舵机会转到 180°

意思就是在这个20ms的一个周期内,如果有0.5ms是高电平其他都是低电平,那舵机就能转到0度,其他的以此类推。

那我们要计多少个数才是0.5ms呢,答案是500个数。

因为1us=1

所以0.5ms=500us=500

我看很多文章他们喜欢分7200频,都可以的的,大家可以计算一下。

接着我们在循环里面这样写就能运转0度到180度

但是但是但是,你怎么知道这计500个数的时间就是高电平的时间呢,怎么就不能是低电平的时间呢,所以要自己设置的,相关的有两个参数,就是下图我框起来的两个参数。

首先就是第一条,pwm输出模式是有两个的,一个pwm1,一个pwm2

按我的理解来说,pwm1的意思就是先输出有效电平再输出无效电平。而pwm2就是反过来,先输出无效电平再输出有效电平。

而这个有效电平就是你自己来决定的,也就是第二条来决定的,我写的就是有效电平为高电平,当然也可以写有效电平为低电平。

所以我配置pwm1模式,有效电平又为高电平就意味这,当我使用这个函数

TIM_SetCompare3(TIM4,500); //0度

他的意思是,输出计500个数的时间的有效电平高电平,剩余的为低电平。

如果你写的是pwm2模式,那意思就是,输出计500个数的时间的低电平,剩余的为有效电平高电平。

当初,不明白这两个参数的含义,也是卡了一阵子。

第一次写文章,同时也是初学者,如果文章当中有什么措辞不对,或者错误的地方,欢迎在评论区指出。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32+SG90舵机详解(详细) 的相关文章

随机推荐

  • 测试网站漏洞软件,如何检测网站漏洞,web漏洞扫描工具盘点

    一 常见漏洞 1 高危漏洞 自媒体www 777n com XSS跨站脚本漏洞 由于程序员在编写程序时对用户提交的数据没有做充分的合规性判断和进行HTML编码处理 直接把数据输出到浏览器客户端 这样导致用户可以提交一些特意构造的脚本代码或H
  • opencv之图像二值化处理

    opencv二值化操作分为 全局阈值和局部阈值两种 在进行图像二值化之前需要对图片进行灰度处理 全局阈值 全局阈值分为 手动阈值和自动阈值两种 手动阈值 opencv函数 threshold gray src dst threshold v
  • [激光原理与应用-54]:《激光焊接质量实时监测系统研究》-5-试验结果及分析

    目录 5 1 实验条件 5 2 焊接正常信号分析 5 2 1 正常焊接过程 5 2 2 时域 原始波形 5 2 3 时域 统计分析后的波形 5 3 缺陷信号分析 5 3 1 缺陷焊接过程 5 3 2 时域 原始信号 5 3 3 时域 统计处
  • 并发编程之——AQS原理和阻塞队列变化

    1 AQS简介 2 源码分析 2 1 线程阻塞 2 2 线程唤醒 1 AQS简介 AQS全名 AbstractQueuedSynchronizer 它就是Java的一个抽象类 它的出现是为了解决多线程竞争共享资源而引发的安全问题 细致点说A
  • HTTP协议详解(真的很经典)

    HTTP协议详解 真的很经典 2008 11 03 09 11 by Hundre 711330 阅读 32 评论 收藏 编辑 转自 http blog csdn net gueter archive 2007 03 08 1524447
  • QT之QDir文件目录拷贝、创建、删除

    在开发过程中 需要用到文件的一些处理 例如文件夹的拷贝 文件夹删除或创建 文件的拷贝 删除等操作 Qt已经包含了这些操作 作为一个跨平台的开发工具 这些功能绝对会帮助你在跨平台开发中很方便 Qt中QDir类实现了对文件夹和路径的处理 QFi
  • swagger对json数据的处理

    在实习中遇到了一个不寻常的事情 今天和同事讨论一个小问题 同事使用swagger 想要调用一个接口 这个接口要传递一个json对象 对应java的一个实体类 但是有一个属性同事不想看到它 就用 JsonIgnore给注掉了 当时这个我不知道
  • gulp4.0入门, 看这一篇就够了

    前言 之前我们讲了gulp3 0 这篇引入gulp4 0 4 0相比3 0有一些改变的地方 gulp3 0压缩顺序默认是顺序执行的 4 0引入压缩并行的处理方式 gulp series 4 0 依赖顺序执行 gulp parallel 4
  • C# ASP.NET 连接MySQL 如何先进行多条件查询,然后进行数据库插入操作

    数据库内有很多字段 但是2个字段 id mac id 中的任何一个都不能在数据库的记录中重复 WEB网页上有n个TEXTBOX控件 用于输入数据库字段的值 其中 textbox1输入id字段值 textbox3输入mac id字段的值 插入
  • Python爬虫:设置Cookie解决网站拦截并爬取蚂蚁短租

    我们在编写Python爬虫时 有时会遇到网站拒绝访问等反爬手段 比如这么我们想爬取蚂蚁短租数据 它则会提示 当前访问疑似黑客攻击 已被网站管理员设置为拦截 提示 如下图所示 此时我们需要采用设置Cookie来进行爬取 下面我们进行详细介绍
  • VTM1.0代码阅读:compressCtu函数

    compressCtu函数是对一个ctu进行编码的函数 入口参数cs是pictrue的cs 这个cs里面存储当前帧的所有已编码过CTU的cu pu tu等信息 area为当前要编译ctu的区域 ctuRsAddr为当前ctu的rs扫描地址
  • 【笔记-node】《imooc-nodejs入门到企业web开发中的应用》

    目录 课程名 备注 入门必学 nodejs入门到企业web开发中的应用 框架与工具 node js koa2 mysql打造前后端分离精品项目 旧岛 项目实战 20190317 20200720 imooc nodejs入门到企业web开发
  • DTO/VO/Entity等数据类型转换

    DTO VO Entity等数据类型转换 在web开发中 前端传递数据给后端时采用DTO类型 而存入数据库时则采用entity类型 这样的操作存在类型转换 如果我们一个一个的设值也就太麻烦了 我们可以采用spring提供的jar包来解决这样
  • 计算机 创新方法举例,列举列举五种创新的方法并加以举例说明

    一 简化模式 在研发新产品时 我们总会不自觉的想要在产品上增加新的特色或功能 导致产品使用起来越发复杂 这样的画蛇添足对产品来说是一种负担 我们要运用简化模式 主要是将产品中多余的属性移除 再增加新功能 例如 手机从键盘按键模式变成触屏的虚
  • mybatisPlus update更新部分字段

    第一种方式 其中 lambdaUpdateWrapper set 表示要更新的字段值 eq 则表示 WHERE 条件 public void updateEntity LambdaUpdateWrapper
  • 人工智能AI生成的艺术:从文本到图像、视频、3D建模

    继去年火遍全网的虚拟人之后 AI绘画又成了今年热议的科技话题 AI绘画就是 以文生图 打通了文字和图像的隔阂 只要输入一段文字描述 AI 就可以把用户脑海中想象的画面呈现出来 这是一种文字转图像 Text to image 特性的崭新交互方
  • 基于SpringBoot的在线教育平台系统

    基于SpringBoot Vue的线教育平台系统 前后端分离 开发语言 Java 数据库 MySQL 技术 SpringBoot Vue Mybaits Plus ELementUI 工具 IDEA Ecilpse Navicat Mave
  • 【专题5: 硬件设计】 之 【69.开关电源 之 如何计算buck电路占空比和电感的计算】

    嵌入式工程师成长之路 系列文章 总目录 系列文章总目录 希望本是无所谓有 无所谓无的 这正如脚下的路 其实地上本没有路 走的人多了 也便成了路 原创不易 文章会持续更新 欢迎微信扫码关注公众号 承接 小程序 嵌入式 PC端项目开发 联系作者
  • Apache Kafka Connect JNDI注入漏洞复现(CVE-2023-25194)

    1 产品简介 Kafka Connect是一种用于在Apache Kafka和其他系统之间可扩展且可靠地流式传输数据的工具 它使快速定义将大量数据移入和移出Kafka的连接器变得简单 Kafka Connect可以摄取整个数据库或从所有应用
  • STM32+SG90舵机详解(详细)

    上一次使用舵机只是草草了解 只大概知道是pwm控制的 这次又使用到了舵机 本以为复制上次代码就可以调试成功 没想到却弄了很久 我使用的是STM32f103c8t6 用的是定时器4 这个f1板子的定时器各个通道io口如下图所示 在开始之前我们