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

相关文章

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.