STM32应用(一)控制舵机SG90/MG996R/数字舵机

2023-10-28 04:30

本文主要是介绍STM32应用(一)控制舵机SG90/MG996R/数字舵机,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1.舵机SG90
    • 1.1 舵机参数
    • 1.2 实物图和接线
    • 1.3 工程配置和代码编写
    • 1.4 代码分享
  • 2.舵机MG996R(180°、360°)
    • 2.1 舵机参数
    • 2.2 实物图
    • 2.3 补充:360°舵机
  • 3.数字舵机
    • 3.1 舵机参数
    • 3.2 实物图

舵机的控制实际上就是对占空比的设定。

1.舵机SG90

1.1 舵机参数

产品类型:SG90舵机
产品扭矩:2.0kg/cm(4.8V),2.2kg/cm(6V)
产品速度:0.09秒/60°(4.8V),0.08秒/60°(6V)
转动角度:180°
工作电压:4.8 ~ 6V
齿轮形式:塑料齿轮
死区设定:7us (微秒)
产品重量:10.5g
产品尺寸:22.8mm × 12.2mm × 28.5mm

1.2 实物图和接线

在这里插入图片描述

舵机上有三根线,分别是GND(棕色线)、VCC(红色线)和SIG(黄色线),也就是地线、电源线和信号线。

SG90舵机STM32
VCC5V
GNDGND
SIGPWM产生通道

舵机的控制,需要一个20ms的时基脉冲,控制高电平时间为0.5ms~2.5ms范围内即可控制舵机在0 ~ 180°转动。

t=0.5ms---------------舵机转动到0°
t=1.0ms---------------舵机转动到45°
t=1.5ms---------------舵机转动到90°
t=2.0ms---------------舵机转动到135°
t=2.5ms---------------舵机转动到180°

1.3 工程配置和代码编写

时钟树的配置基本配置。

开启定时器3的通道1,APB1上的时钟频率为84Mhz。

在这里插入图片描述
84M/84=1Mhz,即在1s内计数一百万次,我们需要设定20ms,则重装载值应为20000。
在这里插入图片描述
检查GPIO。
在这里插入图片描述

while中代码:

		__HAL_TIM_SetCompare(&htim3,TIM_CHANNEL_1,500);//0°HAL_Delay(1000);__HAL_TIM_SetCompare(&htim3,TIM_CHANNEL_1,1000);//45°HAL_Delay(1000);__HAL_TIM_SetCompare(&htim3,TIM_CHANNEL_1,1500);//90°HAL_Delay(1000);__HAL_TIM_SetCompare(&htim3,TIM_CHANNEL_1,2000);//135°HAL_Delay(1000);__HAL_TIM_SetCompare(&htim3,TIM_CHANNEL_1,2500);//180°HAL_Delay(1000);

1.4 代码分享

SG90代码 提取码:zpvt

2.舵机MG996R(180°、360°)

2.1 舵机参数

产品类型:MG996R舵机
产品扭矩:9kg/cm(4.8V),11kg/cm(6V)
产品速度:0.19秒/60°(4.8V),0.18秒/60°(6V)
转动角度:180°
工作电压:4.8 ~ 6V
齿轮形式:金属齿轮
死区设定:5us (微秒)
产品重量:55g
产品尺寸:40.7mm × 19.7mm × 42.9mm

2.2 实物图

在这里插入图片描述

2.3 补充:360°舵机

而对360度舵机:实际相当于无极变速的减速电机,可以控制速度和方向。没有0-360度角度控制的功能。控制方式和一般舵机的控制信号相同。是瓦力改装的合适动力源。
高电平为0.5毫秒~1.5毫秒时,舵机正转(0.5毫秒时正转速度最快,越接近1 .5毫秒越慢, 1.5毫秒时舵机停转),高电平为1.5毫秒~ 2.5毫秒时舵机反转(1.5毫秒时舵机停转,越接近2.5毫秒反转的速度越快,2.5毫秒时以最快的速度反转)

		for(uint32_t cnt = 500;cnt<=1500;cnt++)//顺时针,速度由大变小{__HAL_TIM_SetCompare(&htim3,TIM_CHANNEL_1,cnt);//180°HAL_Delay(10);}for(uint32_t cnt = 1500;cnt<=2500;cnt++)//逆时针,速度由小变大{__HAL_TIM_SetCompare(&htim3,TIM_CHANNEL_1,cnt);//180°HAL_Delay(10);}

可以接数码管,方便观看。8位数码管显示模块
在这里插入图片描述

3.数字舵机

3.1 舵机参数

工作电压:4.8-8.4V
减速比:310:1
舵片规格:25T/ψ5.80
齿轮比:275
脉宽范围:500→2500 μs
工作频率:50-330Hz
中立位置:1500μs
接线 :红色=正极 / 黑色&褐色=负极 / 黄色&白色=信号线。

3.2 实物图

在这里插入图片描述

主要看工作电压和脉宽范围。
这些舵机原理和代码与上述一致。博客也有很多。欢迎批评指正。

这篇关于STM32应用(一)控制舵机SG90/MG996R/数字舵机的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/290695

相关文章

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N

Python中yield的用法和实际应用示例

《Python中yield的用法和实际应用示例》在Python中,yield关键字主要用于生成器函数(generatorfunctions)中,其目的是使函数能够像迭代器一样工作,即可以被遍历,但不会... 目录python中yield的用法详解一、引言二、yield的基本用法1、yield与生成器2、yi

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.

从基础到高阶详解Python多态实战应用指南

《从基础到高阶详解Python多态实战应用指南》这篇文章主要从基础到高阶为大家详细介绍Python中多态的相关应用与技巧,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、多态的本质:python的“鸭子类型”哲学二、多态的三大实战场景场景1:数据处理管道——统一处理不同数据格式

基于Python实现数字限制在指定范围内的五种方式

《基于Python实现数字限制在指定范围内的五种方式》在编程中,数字范围限制是常见需求,无论是游戏开发中的角色属性值、金融计算中的利率调整,还是传感器数据处理中的异常值过滤,都需要将数字控制在合理范围... 目录引言一、基础条件判断法二、数学运算巧解法三、装饰器模式法四、自定义类封装法五、NumPy数组处理

Java Stream 的 Collectors.toMap高级应用与最佳实践

《JavaStream的Collectors.toMap高级应用与最佳实践》文章讲解JavaStreamAPI中Collectors.toMap的使用,涵盖基础语法、键冲突处理、自定义Map... 目录一、基础用法回顾二、处理键冲突三、自定义 Map 实现类型四、处理 null 值五、复杂值类型转换六、处理