stm32控制舵机sg90
一、sg90简介
首先介绍说一下什么是舵机。舵机是一种位置(角度)伺服的驱动器。适用于一些需要角度不断变化的,可以保持的控制系统。sg90就是舵机的一种。

舵机的工作原理比较简单。舵机内部有一个基准电压,单片机产生的PWM信号通过信号线进入舵机,与舵机内部的基准电压作比较,获得电压差输出。电压差的正负输出到电机驱动芯片上,从而决定正反转。开始旋转的时候,舵机内部通过级联减速齿轮带动电位器旋转,使得电压差为零,电机停止转动。
二、引脚连接
sg90有三个引脚,分别是红线(VCC),棕线(GND)和橙线(信号线)。通常使用5V供电,信号线接单片机引脚,用老来接收单片机发送的PWM。
三、控制方法
控制sg90舵机旋转也比较简单,只需要给它输出PWM波,修改占空比就可以调整角度。sg90的控制一般需要一个20ms 左右的时基脉冲,脉冲的高电平部分一般在0.5ms~2.5ms。高电平持续时间与旋转角度的对应关系如下
| 高电平持续时间/ms | 舵机角度/° |
|---|---|
| 0.5 | 0 |
| 1.0 | 45 |
| 1.5 | 90 |
| 2.0 | 135 |
| 2.5 | 180 |
四、程序设计
这里以180°的sg90,来展示一下程序设计
4.2 编写控制程序
根据高电平持续时间与角度关系对应表格来编写sg90的控制程序
while(1){TIM_SetCompare1(TIM3,195); // 旋转到0°delay_ms(500);TIM_SetCompare1(TIM3,190); // 旋转到45°delay_ms(500);TIM_SetCompare1(TIM3,185); // 旋转到90°delay_ms(500);TIM_SetCompare1(TIM3,180); // 旋转到135°delay_ms(500);TIM_SetCompare1(TIM3,175); // 旋转到180°delay_ms(500);}
文部分内容转载自:STM32外设系列—sg90(舵机) (jnnr.cn)感谢分享
看上面这个代码就是采用调用函数的方式来控制旋转角度,所以这个函数就是一个产生PWM的函数
相关文章:
stm32控制舵机sg90
一、sg90简介 首先介绍说一下什么是舵机。舵机是一种位置(角度)伺服的驱动器。适用于一些需要角度不断变化的,可以保持的控制系统。sg90就是舵机的一种。 舵机的工作原理比较简单。舵机内部有一个基准电压,单片机产生的PWM信号通…...
state 和 props 有什么区别?
一、state 一个组件的显示形态可以由数据状态和外部参数所决定,而数据状态就是 state,一般在 constructor 中初始化 当需要修改里面的值的状态需要通过调用 setState 来改变,从而达到更新组件内部数据的作用,并且重新调用组件 r…...
Unity 获取桌面路径的方法
在Unity中,当我们碰到以下一些情况时,可能需要桌面的路径。 1、文件操作:如果我们想在游戏中保存或读取文件到桌面,就可以使用桌面路径来指定文件的位置。 2、调试信息:在开发过程中,我们往往会将一些调试…...
基于SSM的考研图书电子商务平台的设计与实现
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…...
信息系统“好用”的标准探讨
数字化转型建设的关键不在建设信息系统。这是为了避免走信息化建设的老路——业务和信息化两张皮,寄希望信息系统解决业务问题。在数字化转型建设中,信息系统仍然是重要抓手和显性成果,是企业业务和数据的承载平台,也是IT厂商向客…...
vue elementui 实现从excel从复制多行多列后粘贴到前端界面el-table
1、效果图 可以全部复制粘贴,也可以单独对某行、某列进行复制粘贴 从excel复制粘贴到前端页面的table上 2、实现代码 html部分: <template><div><el-table:data"tableData"borderstyle"width: 100%":cell-class-…...
C++学习 --类和对象之友元
目录 1, 全局函数做友元 2, 类做友元 3, 成员函数做友元 友元可以让函数、成员函数、类, 访问另外一个类的私有变量 1, 全局函数做友元 在类中, 通过friend 数据类型 函数名()方式,将函数当…...
Flutter笔记:使用Flutter构建响应式PC客户端/Web页面-案例
Flutter笔记 使用Flutter构建响应式PC客户端/Web页面-案例 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/detai…...
聊聊LogbackMDCAdapter
序 本文主要研究一下LogbackMDCAdapter MDCAdapter org/slf4j/spi/MDCAdapter.java public interface MDCAdapter {/*** Put a context value (the <code>val</code> parameter) as identified with* the <code>key</code> parameter into the cur…...
spring命名空间注入和XML自动装配、引入外部配置文件
Spring p命名空间注入util命名空间注入基于XML的自动装配根据名称自动装配 Spring引入外部属性配置文件 p命名空间注入 作用:简化配置。 使用p命名空间注入的前提条件包括两个: ● 第一:在XML头部信息中添加p命名空间的配置信息:…...
【2024年11月份--2024精灵云校招C++笔试题】
考试形式 笔试考了三道算法题,笔试形式为阅读题目,然后用中文给出算法思路,最后给出算法例程,分数各占一半,简单,中等,复杂各一道题。我看9月份有人也是考这3道题,一模一样。 第…...
Visual Studio 2019下编译OpenCV 4.7 与OpenCV 4.7 contrib
一、环境 使用的环境是Win10,Visual Studio 2019,Cmake3.28,cdua 11.7,cudnn 8.5,如果只是在CPU环境下使用,则不用安装CUDA。要使用GPU处理,安装好CUDA之后,要测试安装的CUDA是否能用。不能正常使用的话,添加一下系统…...
【Linux网络】系统调优之聚合链路bonding,可以实现高可用和负载均衡
一、什么是多网卡绑定 二、聚合链路的工作模式 三、实操创建bonding设备(mode1) 1、实验 2、配置文件解读 3、查看bonding状态,验证bonding的高可用效果 三、nmcli实现bonding 一、什么是多网卡绑定 将多块网卡绑定同一IP地址对外提供服务…...
k8s持久化存储PV、PVC
容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态)重新启动。其次&a…...
CocosCreator3.8原生引擎源码研究
1. Cocos Creator引擎架构图 2. 原始引擎源码流程图 下图中包含Android native层引擎到js适配层的启动和主循环的启用流程和必要说明,本猿比较懒,暂时不细述了,各位看官直接看图吧,还在细化扩充,后续逐渐更新。。。 版…...
高二英语上
unit 1 1.yarn三种意思 1.码; 2.庭院,天井; 3.花园;down**down 在这里是介词,也可以作副词,与 down 相对的是 up。请比较下列两句: 1.Look! Hes driving down the street . 2.Look! Hes driving up the street .这两例…...
JavaWeb Day10 案例 准备工作
目录 一、需求说明 二、环境搭建 (一)数据库 (二)后端 ①controller层 1.DeptController.java 2.EmpController.java ②mapper层 1.DeptMapper.java 2.EmpMapper.java ③pojo层 1.Dept.java 2.Emp.jav…...
Nginx:不同域名访问同一台机器的不同项目
Nginx很简单就可以解决同一台机器同时跑两个或者多个项目,而且都通过域名从80端口走。 以Windows环境下nginx服务为例,配置文件nginx.conf中,http中加上 include /setup/nginx-1.20.1/conf/conf.d/*.conf;删除server部分,完整如…...
C++(20):new数组时元素个数自动推到
C20在new数组时可以根据初始化列表,自动推到元素个数: #include <iostream> using namespace std;int main() {int *pd new int[]{1,2,3,4};for(auto i 0; i < 4; i){cout<<pd[i]<<endl;}return 0; }运行程序输出: 1…...
使用visualStudio发布可执行文件
编译成功后会在程序项目的路径下创建一个debug文件夹和一个release文件夹 文件夹中的具体文件入下所示 生成32位的可执行文件 32位的可执行文件可以在64位的计算机中执行,而64位的操作系统程序只能在64位的计算机中执行安装运行库的安装包根据电脑的版本选择合适的…...
基于Python的考试系统毕业设计
博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。 一、研究目的 本研究旨在设计并实现一个基于Python的考试系统,以满足现代教育环境中对在线考试系统的需求。该系统旨在提供一种高效、安全、便捷的考试环境&am…...
告别重复造轮子:用PyTorch训练MobileNetV2,在Simulink 2022b里一键导入并推理
跨越框架鸿沟:PyTorch到Simulink的模型迁移实战指南 当深度学习遇上系统仿真,工程师们常常陷入两难境地——PyTorch提供了前沿的模型架构和灵活的训练环境,而Simulink则是系统级仿真的黄金标准。传统做法需要经历繁琐的格式转换和接口调试&am…...
如何用插件化架构实现跨平台音乐数据智能统一?
如何用插件化架构实现跨平台音乐数据智能统一? 【免费下载链接】MusicFree 插件化、定制化、无广告的免费音乐播放器 项目地址: https://gitcode.com/GitHub_Trending/mu/MusicFree 你是否曾经在网易云音乐收藏了一首好歌,想在QQ音乐上听却发现歌…...
Windows系统终极优化方案:WinUtil一键管理工具完全指南
Windows系统终极优化方案:WinUtil一键管理工具完全指南 【免费下载链接】winutil Chris Titus Techs Windows Utility - Install Programs, Tweaks, Fixes, and Updates 项目地址: https://gitcode.com/GitHub_Trending/wi/winutil WinUtil是一款由Chris Tit…...
AudioLDM-S实战:快速生成机械键盘声、猫咪呼噜,小白轻松上手
AudioLDM-S实战:快速生成机械键盘声、猫咪呼噜,小白轻松上手 想不想自己动手,创造出那些只在电影、游戏里听到的逼真音效?比如,清脆的机械键盘敲击声、猫咪满足的呼噜声,或是雨林深处的自然白噪音。以前这…...
别再瞎调了!SRS流媒体服务器性能优化,这5个关键配置项才是核心(附低延迟/高并发场景配置模板)
SRS流媒体服务器性能调优实战指南:5个关键杠杆与场景化配置 当你面对SRS服务器性能瓶颈时,是否曾在数十个配置参数中迷失方向?我曾亲眼见过团队花费两周时间调整非核心参数,最终性能提升却不足5%。本文将揭示真正影响性能的五大黄…...
Untitled
import pandas as pddf pd.read_excel("./车辆行驶里程表-2.xlsx")df车辆ID启动时间停止时间启动时剩余电量停止时剩余电量启动时电池温度峰值速度平均速度01.02020-02-20 11:31:272020-02-20 11:59:4553451185.21931.8011.02020-02-20 07:52:512020-02-20 08:19:25…...
C# 14原生AOT调用Dify流式响应API:如何安全绕过HttpClientHandler AOT不兼容?微软.NET 9 Preview 7补丁已验证
第一章:C# 14 原生 AOT 部署 Dify 客户端 最佳实践C# 14 的原生 AOT(Ahead-of-Time)编译能力显著提升了 .NET 应用的启动性能与部署轻量化水平,结合 Dify 的开放 API 设计,可构建零依赖、秒级启动的跨平台客户端。本章…...
华大北斗GNSS测评工具Satrack实战指南-V1.2
1. 华大北斗GNSS测评工具Satrack初探 第一次接触华大北斗的Satrack工具时,我完全被它的专业性和易用性所折服。作为一款专门用于GNSS(全球导航卫星系统)性能测评的工具,Satrack在业内有着相当不错的口碑。简单来说,它就…...
iOS开发中.p12证书密码丢失的应急处理与安全导出指南
1. 当.p12证书密码丢失时,开发者该怎么办? 遇到.p12证书密码丢失的情况,很多iOS开发者会感到手足无措。这种情况在实际开发中并不少见,特别是当项目交接或长时间未使用证书时。我曾经接手过一个老项目,就遇到过前任开发…...
