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

【STM32F1】——舵机角度控制与TIM定时器

【STM32F1】——舵机角度控制与TIM定时器

一、简介

本篇主要对舵机DS-S002M模块调试过程进行总结,实现了以下功能:

1)舵机转动角度的控制:利用STM32F103C8T6的TIM定时器产生PWM信号控制舵机DS-S002M转动一定的角度。

二、DS-S002M数字舵机介绍

  1. 电压:4.8-6.0V
  2. 操作角度:180°
  3. 质量:5.8g
  4. 信号周期:20ms
  5. 脉冲宽度:500-2500us(0.5-2.5ms)
  6. 数字舵机/模拟舵机:数字舵机只需要发一次信号,模拟舵机需要持续发信号

三、相关基础知识

  1. 舵机控制原理

    向舵机发送一个时长为20ms的PWM信号,其高电平持续时间0.5 ~ 2.5ms,即所谓的占空比可以对应控制转角转动0 ~ 180°,即PWM的占空比决定舵机转角

  1. 信号基础——时钟周期与分频

    1)一般,STM32单片机的系统时钟Sys_tck = 72MHz(1MHz = 1 0 6 10^6 106 Hz),即将1秒分成7200万份,作为时基。在实际使用时,对Sys_tck进行切分,即分频。如采用7200分频(PSC=7200-1),即时基为0.01MHz,每份约0.1ms

    2)STM32单片机的最大分频数为65536

    3)为什么是PSC=分频数-1,是因为计算机是从0开始计数的。

  2. 如何产生PWM信号

    1)PWM波的产生需要两个因素:高低电平跳变+控制高低电平持续时间

    2)单片机中,PWM波的产生可以依靠定时器来实现

  3. 定时器——如何构造高低电平跳变:利用循环计数器自动复位计数

    1)STM32单片机的定时器本质上就是循环计数器,由一些寄存器构成。其中最重要的是计数寄存器CK_CNT和自动重载寄存器ARR

    2)对计数寄存器CK_CNT来说,时钟前进一下,其存储的数值自动加一或减一

    3)对自动重载寄存器ARR来说,相当于储存一个上限值。当CK_CNT大于ARR时,计数寄存器CK_CNT会自动复位重新循环计数。如果设置了中断时,还会触发对应的中断

    4)计数模式分为向上(0→ARR)、向下(ARR→0)、中心对齐(0→ARR→0)

  1. 定时器——如何控制高低电平持续时间:通过比较寄存器控制高电平持续时间

    从上面的内容我们可以看出:依靠循环计数器,可以实现跳变,但不能将间隔分成前后两端。如果在循环计数中,增加一个比较寄存器CCR,在计数器更新时与CCR比较,并输出比较的结果便可实现。当 0 < CK_CNT < CCR时,输出高电平,而CCR < CK_CNT < ARR时输出低电平,便实现了控制高低电平的持续时间。

  2. 定时器ARR和PSC的配置

    1)最重要的是定时器周期TIM_Period(ARR)和分频数TIM_Prescaler(PSC),两者之间存在确定的关系,可以表示为:PWM信号的周期(20ms)

    = ( A R R − 1 ) ∗ 时基 = ( A R R − 1 ) ∗ ( P S C − 1 ) / Sys_tck = (ARR-1) * \text{时基} = (ARR-1) * (PSC-1) / \text{Sys\_tck} =<

http://www.lryc.cn/news/481369.html

相关文章:

  • 想要成为独立游戏作者 :通关!游戏设计之道 2-1 HUD
  • sql专题 之 三大范式
  • node.js安装和配置教程
  • 定时器输入捕获实验配置
  • 【C/C++】memcpy函数的使用
  • spring-security(两种权限控制方式)
  • 【mongodb】数据库的安装及连接初始化简明手册
  • 【科普】卷积、卷积核、池化、激活函数、全连接分别是什么?有什么用?
  • 距离向量路由选择协议和链路状态路由选择协议介绍
  • 【AI大模型】大型语言模型LLM基础概览:技术原理、发展历程与未来展望
  • ubuntu 22.04 server 安装 和 初始化 LTS
  • 大数据机器学习算法与计算机视觉应用03:数据流
  • 【代码随想录day25】【C++复健】491.递增子序列;46.全排列;47.全排列 II;51. N皇后;37. 解数独
  • AI智能识物(微信小程序)
  • 游戏引擎学习第三天
  • 帝国CMS7.5仿模板堂柒喜模板建站网 素材资源下载站源码
  • 聊一聊Spring中的自定义监听器
  • 【王木头】最大似然估计、最大后验估计
  • 智谱AI视频生成模型CogVideoX v1.5开源 支持5/10秒视频生成
  • 算法(第一周)
  • Linux服务器进程的控制与进程之间的关系
  • 机器学习Housing数据集
  • 随着最新的补丁更新,Windows 再次变得容易受到攻击
  • 【Python】爬虫通过验证码
  • dc-aichat(一款支持ChatGPT+智谱AI+讯飞星火+书生浦语大模型+Kimi.ai+MoonshotAI+豆包AI等大模型的AIGC源码)
  • 检索增强生成
  • 操作系统--进程
  • abap 可配置通用报表字段级日志监控
  • OpenCV视觉分析之目标跟踪(11)计算两个图像之间的最佳变换矩阵函数findTransformECC的使用
  • PGMP-串串0203 项目集管理绩效域战略一致性