当前位置: 首页 > article >正文

【STM32】舵机SG90

1.舵机原理

舵机内部有一个电位器,当转轴随电机旋转,电位器的电压会发生改变,电压会带动转一定的角度,舵机中的控制板就会电位器输出的电压所代表的角度,与输入的PWM所代表的角度进行比较,从而得出一个旋转的方向与角度。
该舵机可以控制0°~180°旋转
在这里插入图片描述
舵机0°~180°旋转对应高电平的时间为500us ~2500us,而一般舵机的频率为50Hz,也就是周期为20ms,对应的占空比就是2.5% ~12.5%,2.5%对应舵机转0°,12.5%对应舵机转180°,7.5%就对应着转90°。

2.简单使用

使用旋转编码器对舵机进行控制,旋转编码器转一圈是20个脉冲,也就是计数40次,为了让旋转编码器与舵机旋转对应上,也就是旋转编码器最大计数20就可以了,对应舵机的半圈
在这里插入图片描述
舵机的PWM输入引脚为PB8,我们需要将PB8设置为PWM输出引脚

在这里插入图片描述
而PB8也是定时器4的通道3
在这里插入图片描述

在这里插入图片描述
代码:

#define MAX_COUNT 20
int main(void)
{HAL_TIM_Encoder_Start(&htim1,TIM_CHANNEL_ALL);//编码器启动HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_3);//PWM输出启动int count=0;int duty=0;//舵机高电平对应的计数次数while (1){ count=__HAL_TIM_GET_COUNTER(&htim1);//统计编码器count=20就是转半圈if(count>60000)//反转{count=0;__HAL_TIM_SET_COUNTER(&htim1,0);}else if(count>MAX_COUNT){count=MAX_COUNT;__HAL_TIM_SET_COUNTER(&htim1,MAX_COUNT);}//限制编码器最多输出10个脉冲,20次计数duty=(10*(count/(float)MAX_COUNT)+2.5)/100.0*2000;__HAL_TIM_SET_COMPARE(&htim4,TIM_CHANNEL_3,duty);}}
  duty=(10*(count/(float)MAX_COUNT)+2.5)/100.0*2000;

count/MAX_COUNT在0~1之间
10*(count/MAX_COUNT)在0~10之间
10*(count/MAX_COUNT)+2.5在2.5~12.5之间
(10*(count/(float)MAX_COUNT)+2.5)/100.0在2.5%~12.5%之间
2000为自动重装值,*2000,就是看比较寄存器的值应该放多少,形成占空比
count/MAX_COUNT整形/整形还是整形,为了不舍弃,强转为float

相关文章:

【STM32】舵机SG90

1.舵机原理 舵机内部有一个电位器,当转轴随电机旋转,电位器的电压会发生改变,电压会带动转一定的角度,舵机中的控制板就会电位器输出的电压所代表的角度,与输入的PWM所代表的角度进行比较,从而得出一个旋转…...

科普:“git“与“github“

Git与GitHub的关系可以理解为:Git是一种软件工具,而GitHub则是一个在线平台,它们是“一家子”。二者的关联最直接体现在你通过Git在GitHub仓库中clone软件包到你的机器中来。 具体来说: 一、Git 定义:Git是一个开源的…...

个人简历html网页模板,科技感炫酷html简历模板

炫酷动效登录页 引言 在网页设计中,按钮是用户交互的重要元素之一。这样一款黑色个人简历html网页模板,科技感炫酷html简历模板,设计效果类似科技看板图,可帮您展示技能、任职经历、作品等,喜欢这种风格的小伙伴不要犹豫哦。该素材呈现了数据符号排版显示出人形的动画效…...

蓝桥杯备赛 Day8 二分

二分 1.要点 选取左闭右闭,[left,right] (1)二分查找&#xff1a;有序数组&#xff0c;且无重复元素寻找目标值key int left0,rightn-1,res-1;//未找到返回-1 while(left<right){int midleft((right-left)>>1); //注意右边括号&#xff0c;号优先于>>if(a[mi…...

CMMI5:请说明如何根据评价准则选择最佳解决方案?

一、明确评价准则及权重分配 确定评价准则&#xff1a;首先要清晰地列出所有相关的评价准则&#xff0c;这些准则通常涵盖多个方面&#xff0c;比如与项目目标的契合度&#xff08;包括功能需求满足程度、性能需求达标情况、对项目进度的影响等&#xff09;、技术可行性&#…...

<2.20>Leetcode哈希、双指针

还可以用双指针的做法 我们要找等于9 排序后从两边开始左右指针 2 3 7 9 如果29>9那么9肯定不能要 去掉 左边也一样 2 3 5 6 26小于9 那么2肯定不能要 去掉 package Leetcode; import java.util.*;public class 两数之和 {public int[] twoSum(int[] nums,int target…...

本2硕9电子科学专业,想走linux或是嵌入式,要具体学哪些技术

​今天给大家分享的是一位粉丝的提问&#xff0c;本2硕9电子科学专业&#xff0c;想走linux或是嵌入式&#xff0c;要具体学哪些技术 接下来把粉丝的具体提问和我的回复分享给大家&#xff0c;希望也能给一些类似情况的小伙伴一些启发和帮助。 同学提问&#xff1a; 你好&…...

《鸿蒙开发-答案之书》获取视频第一帧和视频时间

《鸿蒙开发-答案之书》获取视频第一帧和视频时间 /*** 获取视频信息**let result await MySightUtil.getSightInfo(this.sightUri);*let base64 : string result[0];*let duration : number result[1]** param uri 视频地址* returns 第一个数据是缩略图 base64 字符串&…...

计算机科学与技术

计算机科学是一个庞大且关联性强的学科体系&#xff0c;初学者常面临以下痛点&#xff1a; - **知识点零散**&#xff1a;容易陷入"只见树木不见森林"的学习困境 - **方向不明确**&#xff1a;面对海量技术栈不知从何入手 - **体系缺失**&#xff1a;难以建立完整…...

vxe-table 如何实现跟 Excel 一样的数值或金额的负数自动显示红色字体

vxe-table 如何实现跟 Excel 一样的数值或金额的负数自动显示红色字体&#xff0c;当输入的值为负数时&#xff0c;会自动显示红色字体&#xff0c;对于数值或者金额输入时该功能就非常有用了。 查看官网&#xff1a;https://vxetable.cn gitbub&#xff1a;https://github.co…...

【Word转PDF】在线Doc/Docx转换为PDF格式 免费在线转换 功能强大好用

在日常办公和学习中&#xff0c;将Word文档转换为PDF格式的需求非常普遍。无论是制作简历、撰写报告还是分享文件&#xff0c;都需要确保文档格式在不同设备上保持一致。而小白工具的“Word转PDF”功能正是为此需求量身打造的一款高效解决方案。 【Word转PDF】在线Doc/Docx转换…...

AF3 _find_template_in_pdb 函数解读

AlphaFold3 中templates模块的_find_template_in_pdb函数用于在 mmCIF 文件中查找与给定模板序列匹配的链,通过三步匹配策略确保找到最佳的模板链。 源代码: def _find_template_in_pdb(template_chain_id: str,template_sequence: str,mmcif_object: mmcif_parsing.MmcifO…...

陶瓷膜分离技术保障食品工业原料用水‌安全

陶瓷膜分离技术在食品工业中应用广泛&#xff0c;尤其是在保障原料用水的安全性方面发挥着重要作用。下面将从几个方面介绍陶瓷膜分离技术如何保障食品工业原料用水的安全&#xff1a; 高效过滤杂质&#xff1a;陶瓷膜具有非常细小的孔径(通常在纳米级别)&#xff0c;能够有效去…...

蓝桥杯 2.基础算法

蓝桥杯 2.基础算法 文章目录 蓝桥杯 2.基础算法基础算法时空复杂度枚举模拟编程11-16递归编程17进制转换编程18-19前缀和编程20-22差分编程23-27离散化贪心编程28-37二分双指针编程38-45构造编程46-49位运算编程50-55 排序冒泡排序选择排序插入排序快速排序归并排序编程56-65 基…...

ESP32-S3模组上兼容SCCB总线与I2C总线的解决方案(2)

接前一篇文章:ESP32-S3模组上兼容SCCB总线与I2C总线的解决方案(1) 二、问题求解 上一回说明了本系列文章的背景、所遇问题,以及乐鑫官方给出的解决方案,见以下测试用例: TEST_CASE("Camera driver uses an i2c port initialized by other devices test", &qu…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_os_specific_init函数

ngx_os_specific_init 声明在 src/os/unix/ngx_os.h ngx_int_t ngx_os_specific_init(ngx_log_t *log); 定义在 src\os\unix\ngx_linux_init.c ngx_int_t ngx_os_specific_init(ngx_log_t *log) {struct utsname u;if (uname(&u) -1) {ngx_log_error(NGX_LOG_ALERT, log,…...

Go 自动升级依赖版本

&#x1f680; Go 自动升级依赖版本 在 Go 语言项目中&#xff0c;依赖管理使用 Go Modules&#xff08;go.mod 和 go.sum&#xff09;。如果想要自动升级依赖&#xff0c;可以使用以下方法。 1. 方式 1&#xff1a;升级所有依赖 go get -u ./...&#x1f539; 作用&#xff…...

fps僵尸:12.丧尸伤害检测

文章目录 设计丧尸攻击时启用伤害检测&#xff0c;攻击结束后取消伤害检测 思路需要在攻击动画中 调用&关闭伤害检测 实现注解动画通知&#xff1a;绑定动画与蓝图 设计 丧尸攻击时启用伤害检测&#xff0c;攻击结束后取消伤害检测 思路 需要在攻击动画中 调用&关闭…...

支持向量机(SVM)在 NLP 中的使用场景

支持向量机(Support Vector Machine, SVM)是一种强大的监督学习算法,广泛应用于分类任务中。由于其出色的分类性能和高效的计算特点,SVM 已经成为自然语言处理(NLP)领域中的一种经典模型。SVM 在 NLP 中的应用非常广泛,尤其在文本分类任务中,表现出色。 本文将探讨 SV…...

Linux中的Ctrl+C与Ctrl+Z

CtrlC与CtrlZ的区别 在Linux中&#xff0c;当我们在执行一个命令运行代码时&#xff0c;由于运行时间过长或中途出现报错&#xff0c;此时&#xff0c;我们可能需要终止该操作&#xff0c;这时候&#xff0c;该使用CtrlC还是CtrlZ呢&#xff1f; 1、CtrlC CtrlC&#xff1a;终…...

【深度学习】手写数字识别任务

数字识别是计算机从纸质文档、照片或其他来源接收、理解并识别可读的数字的能力&#xff0c;目前比较受关注的是手写数字识别。手写数字识别是一个典型的图像分类问题&#xff0c;已经被广泛应用于汇款单号识别、手写邮政编码识别等领域&#xff0c;大大缩短了业务处理时间&…...

go语言 创建kratos框架工程

go语言 创建kratos框架工程 1、准备 1.1、系统 只支持macos和linux系统&#xff0c; 这里主要是macos&#xff08;linux类似&#xff09; 1.2、需要的环境 1.2.1、go语言环境 $ brew install go # 会安装最新的go版本 $ go env -w GO111MODULEon # 设置go的环境1.2.2、 …...

Linux-GlusterFS操作子卷

文章目录 分布式卷添加卷分布式卷删除子卷删除总卷 &#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;Linux专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2025年02月20日19点30分 分布式卷添加卷 Node1上进行操作 扩容 #服务器端 gluster volu…...

修改阿里云服务器内网ip

运维同事问能不能改我自己的服务内网ip&#xff0c; 买了一台服99元服务器&#xff0c;以为不能结果&#xff0c;结果还真改成功了&#xff0c; 分享一下经验。 首先最后关闭服务器-关机&#xff0c;必须要关闭服务 访问vpc控制台&#xff0c;就是要新建立一个网络 https://…...

鸿蒙与跨端迁移的重要性

鸿蒙操作系统&#xff08;HarmonyOS&#xff09;是由华为公司开发的一款面向未来的全场景分布式操作系统。它旨在提供一个统一的平台&#xff0c;支持各种设备之间的无缝协作和数据共享&#xff0c;从而为用户提供更加连贯和高效的体验。在鸿蒙的生态系统中&#xff0c;跨端迁移…...

XML XML约束 二、DTD

1 什么是DTD DTD&#xff08;Document Type Definition&#xff09;&#xff0c;文档类型定义&#xff0c;用来约束XML文档。例如要求xml文档的根元素必须是<students>&#xff0c;在<students>元素下可以包含0~n个<student>元素&#xff0c;每个<studen…...

用DeepSeek零基础预测《哪吒之魔童闹海》票房——从数据爬取到模型实战

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 **一、为什么要预测票房&#xff1f;****二、准备工作****三、实战步骤详解****Step 1&#xff1a;数据爬取与清洗&am…...

医院管理系统方案-基于蓝牙室内定位技术的院内智能导航系统:技术详解、功能设计及核心优势

文面向IT技术员、医院信息化负责人及物联网应用开发者&#xff0c;本文介绍了一款基于蓝牙室内定位技术的智能导航系统。该系统通过高精度定位与智能路径规划&#xff0c;极大提升了患者就医体验与医院运营效率。 如需获取院内智能导航系统技术文档可前往文章最下方获取&#x…...

ref() 和 reactive()响应性 浅解

文章目录 1. ref() 和 reactive() 的区别2. 解构 详解2.1. 什么是解构2.2. 解构避免丢失响应性的办法2.2.1. 解决方案&#xff1a;toRefs() 保持响应性2.2.2. 解决方案&#xff1a; toRef()保持响应性 3. 最佳实践 在 Vue 3 中&#xff0c;ref() 和 reactive() 都是用于响应式数…...

聊一聊vue如何实现角色权限的控制的

大家好&#xff0c;我是G探险者。 关于角色与权限控制&#xff0c;通常是分为两大类&#xff1a;一种是菜单权限&#xff1b;一种是操作权限。 菜单权限是指&#xff0c;每个角色对应着可以看到哪些菜单&#xff0c;至于每个菜单里面的每个按钮&#xff0c;比如增删改查等等这类…...