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

相关文章

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

Linux中Curl参数详解实践应用

《Linux中Curl参数详解实践应用》在现代网络开发和运维工作中,curl命令是一个不可或缺的工具,它是一个利用URL语法在命令行下工作的文件传输工具,支持多种协议,如HTTP、HTTPS、FTP等... 目录引言一、基础请求参数1. -X 或 --request2. -d 或 --data3. -H 或

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

java中VO PO DTO POJO BO DO对象的应用场景及使用方式

《java中VOPODTOPOJOBODO对象的应用场景及使用方式》文章介绍了Java开发中常用的几种对象类型及其应用场景,包括VO、PO、DTO、POJO、BO和DO等,并通过示例说明了它... 目录Java中VO PO DTO POJO BO DO对象的应用VO (View Object) - 视图对象

Go信号处理如何优雅地关闭你的应用

《Go信号处理如何优雅地关闭你的应用》Go中的优雅关闭机制使得在应用程序接收到终止信号时,能够进行平滑的资源清理,通过使用context来管理goroutine的生命周期,结合signal... 目录1. 什么是信号处理?2. 如何优雅地关闭 Go 应用?3. 代码实现3.1 基本的信号捕获和优雅关闭3.2

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

Python实现局域网远程控制电脑

《Python实现局域网远程控制电脑》这篇文章主要为大家详细介绍了如何利用Python编写一个工具,可以实现远程控制局域网电脑关机,重启,注销等功能,感兴趣的小伙伴可以参考一下... 目录1.简介2. 运行效果3. 1.0版本相关源码服务端server.py客户端client.py4. 2.0版本相关源码1