深入理解如何利用PWM驱动舵机:ESP32驱动DS1115舵机

news2025/1/17 0:08:37

深入理解如何利用PWM驱动舵机:ESP32驱动DS1115舵机

  • DS1115舵机技术规格
  • 举例说明

之前做了一个项目,关于ESP32驱动DS1115舵机,但是在项目运行的过程中由于学艺不精,导致电机抽搐 😵‍💫,所以特意拜访电机大佬并与之交流,发现其实做电机驱动程序同样要关注电机技术规格(原谅本小白之前不懂 😶‍🌫️),在深入理解电机技术规格与PWM之间的关系后,可谓是行云流水,水到渠成了~

关于如何利用ESP32输出PWM可以参考我之前文章:ESP32的脉宽调制PWM 。这篇我们主要来谈谈如何利用ESP32输出的PWM控制相应舵机。

DS1115舵机技术规格

我们先一起来看看DS1115舵机的技术规格,如下:

DS3115 datasheet.pdf

我们重点关注一下它的电气特性和控制特性

在这里插入图片描述

可以看到,DS3115舵机的工作电压为5V~6.8V,因此我们对其的输入电压起码要达到5V以上。

(笔者先前是利用降压模块想要输出5V电压,但是无奈电池没电了输入给降压模块的电压就小于5V,利用万用表测量之后才发现问题 🤔,之后就直接用随身电源输出5V电压,完美 🥳)

像舵机扭矩啥的也是需要关注的,像这个舵机的输出扭矩为15kg-cm~17kg-cm。但是这里我们把注意力先放在驱动方面。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C6Vn7dib-1673012600918)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/dd888492-d3ad-4d91-b83e-692a0310d80e/Untitled.png)]

接下来我们可以看到它的控制特性,这里至关重要,脉冲范围、中点位置、控制频率与后面的PWM输出息息相关。

我们以一张图来看看:
在这里插入图片描述
在这里插入图片描述

至此,可以看到我们需要注意几个地方:

  • 控制频率决定脉冲周期;

    此处的控制频率以50Hz举例,脉冲周期即为20ms

  • 脉宽范围0.5ms2.5ms对应角度0°180°;

  • 在脉宽范围内,每一个占空比对应一个角度;

    之前我们有提过PWM的分辨率,以分辨率为2的10次方份举例,简单来说就是把脉冲周期分成1024份(0~1023),分辨率越大,在脉宽范围内每一份对应的角度就越小,控制就越精细。

因此,我们如果要控制输出舵机转到对应的角度的话就输出对应的占空比即可。

举例说明

我要控制舵机转到0°,在分辨率为2的10次方份的情况下,我应该输出占空比为:

0 ° D u t y C y c l e = 0.5 m s ÷ 20 m s × 1024 − 1 = 24.6 0°DutyCycle=0.5ms÷20ms×1024-1=24.6 DutyCycle=0.5ms÷20ms×10241=24.6

其中,0.5ms指舵机转到0°的脉宽(脉宽范围0.5ms2.5ms对应角度0°180°),20ms指的是控制频率也就是脉冲周期;1024指的是脉冲周期被分为了1024份(0~1023,所以最后要减1);所以整个原理其实是我转到指定角度需要多少份。

关于PWM控制说明可以参考如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/145068.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

声纹识别可靠评测

分享嘉宾 | 李蓝天 文稿整理 | William 1 Introduction 声纹识别的发展,非常迅猛,在一些基准上取得了不错的效果,但如果将其部署到一个实际的应用系统里面, 从应用方的反馈来看,纹识别在很多场景里的鲁棒性并不理想。…

聚观早报 | 亚马逊将裁员17000人;苹果砍单MacBook等产品线架构

今日要闻:亚马逊将裁员17000人;苹果砍单MacBook等产品线;京东科技调整组织架构;小米x徕卡团队获技术大奖;必应搜索或将纳入ChatGPT亚马逊将裁员17000人 1 月 5 日消息,知情人士称,亚马逊新一轮裁…

正版授权|FastStone Capture 专业屏幕截图录屏工具软件 商业版,支持商业用途。

现在截图对每个人来说都是一个必不可少的功能。QQ软件截图、360游览器截图等都是相对简单快速的途径。但是如果你对截图有更多的要求,那么这里推荐一款截图软件,它就是FastStone Capture。这个对于商城老用户来说,几乎是接近人手一份。强大的…

【VUE3】保姆级基础讲解(六)Axios库

目录 Axios介绍与原生的差异 发送常见的请求和配置选项 1、发送request请求 baseURL : 2、发送get请求 3、发送post请求 axios.all Axios创建新的实例 请求和响应拦截 请求拦截 响应拦截 Axios介绍与原生的差异 Axios其实就是一个网络请求库 与原生的差异&…

勇夺中国市场豪华品牌第一名后,特斯拉S3XY全系售价调整

比你优秀的人比你更努力,用这句话形容特斯拉最贴切不过。 刚刚过去的2022年,特斯拉在海内外市场交出了亮眼答卷:全球共计交付产品超131万辆,同比增长40%;乘联会给出的数据显示,上海超级工厂全年交付71.1万辆…

不止IVAS,微软Azure也在布局这些军事模拟场景

一提起微软在军事领域的应用,我们第一印象可能是美军以220亿美元采购HoloLens 2 AR头显的项目,这个项目后期由于AR光学和设计方面受限,正式应用的日期一直再推迟。实际上,微软除了向美军提供HoloLens外,还提供了基于云…

Unity 3D GUI 简介||OnGUI Button 控件

游戏开发过程中,开发人员往往会通过制作大量的图形用户界面( Graphical User Interface,GUI )来增强游戏与玩家的交互性。 Unity 3D 中的图形系统分为 OnGUI、NGUI、UGUI等,这些类型的图形系统内容十分丰富&#xff0…

第05章 数组、排序和查找

数组 基本介绍 数组可以存放多个同一类型的数据,数组也是一种数据类型,是引用类型。 即:数组就是一组数据。 数组的使用 1、数组的定义 方法一: 数据类型[] 数组名 new 数据类型[大小] 说明:int[] a new int[5…

【C++ Primer】阅读笔记(5):vector|迭代器|数组

目录 简介参考结语简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金,有幸在竞赛中拿过一些国奖、省奖…已保研 学习经验:…

数图互通高校房产管理——CAD图形管理

数图互通房产管理系统在这方面做得比较全面; 支持通过建筑物的楼层CAD图查看房间属性和使用信息,实现图数结合、以图管房、图数互查、数图互通、图文一体化。 1.1支持客户端和AutoCAD无缝集成 支持客户端和AutoCAD无缝集成,实现在客户端/Aut…

Acwing---796.子矩阵的和

子矩阵的和1.题目2.基本思想3.代码实现1.题目 输入一个n行m列的整数矩阵,再输入q个询问,每个询问包含四个整数1,y1,2,y2,表示一个子矩阵的左上角坐标和右下角坐标。 对于每个询问输出子矩阵中所有数的和。…

质性分析软件nvivo的学习(三)

0、前言: 这部分内容是,质性分析软件nvivo的学习(二)的衔接内容,建议看完:质性分析软件nvivo的学习(一)(二)再看这部分内容。这里的笔记都是以nvivo12作为学…

高成长、高潜力、高社区影响,达坦科技入选 2022 中国新锐技术先锋企业

2023 年 1 月 4日,中国技术先锋年度评选 | 2022 中国新锐技术先锋企业榜单正式发布。作为中国领先的新一代开发者社区,SegmentFault 思否依托数百万开发者的用户数据分析,各科技企业在国内技术领域的行为及影响力指标,最终评选出 …

【学习】网络压缩:知识蒸馏、参数量化、动态计算,PPO

文章目录一、知识蒸馏Knowledge Distillation二、参数量化结构设计:深度方向可分卷积Depthwise Separable Convolution1、Depthwise Convolution三、动态计算Dynamic Computation四、From on-policy to off-policy(PPO)一、知识蒸馏Knowledge Distillati…

Python蓝桥杯训练:数组和字符串 Ⅳ

Python蓝桥杯训练:数组和字符串 Ⅳ 文章目录Python蓝桥杯训练:数组和字符串 Ⅳ一、买卖股票的最佳时机二、删除排序数组中的重复项三、找出字符串中第一个匹配项的下标四、将整数转换为两个无零整数的和一、买卖股票的最佳时机 给定一个数组 prices &…

k8s 实战1:WordPress搭建

文章目录第一步:部署MariaDB第二步:部署WordPress第三步:映射WordPress Pod 端口号,让它在集群外可见第四步:创建反向代理的 Nginx,让我们的网站对外提供服务WordPress架构图第一步:部署MariaDB…

如何使用LightningChart JS创建高性能可视化的HTML图表?

LightningChart JS是一款高性能的JavaScript图标库,专注于实时数据可视化,以“快如闪电”享誉全球,是Microsoft Visual Studio数据展示速度最快的2D和3D图表制图组件,可实时呈现超过10亿数据点的海量数据。 LightningChart .JS |…

Redis基础篇——Redis常见命令及数据类型详解

文章目录1. Redis常见命令2. Redis数据结构介绍3. 通用命令KEYSDELEXISTSEXPIRETTL4. Redis 命令类型4.1 String 类型String 类型常见命令key的层级格式4.2 Hash 类型Hash 类型常用命令4.3 List 类型List 类型的常见命令4.4 Set 类型Set 类型的常见命令4.5 SortSet 类型SortedS…

全局描述符表

文章目录段描述符全局描述符表GDT段选择子进入保护模式步骤在开始介绍全局描述符之前,先了解一下段描述符。 段描述符 内存段是一片内存区域,访问内存就要提供段基址(段基址属性)以及段界限属性(约束段大小&#xff…

美团前端一面必会react面试题

state 和 props 触发更新的生命周期分别有什么区别? state 更新流程: 这个过程当中涉及的函数: shouldComponentUpdate: 当组件的 state 或 props 发生改变时,都会首先触发这个生命周期函数。它会接收两个参数:nextP…