STM32+SG90舵机详解(详细)

这篇具有很好参考价值的文章主要介绍了STM32+SG90舵机详解(详细)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上一次使用舵机只是草草了解,只大概知道是pwm控制的,这次又使用到了舵机,本以为复制上次代码就可以调试成功,没想到却弄了很久。

我使用的是STM32f103c8t6,用的是定时器4。这个f1板子的定时器各个通道io口如下图所示:

STM32+SG90舵机详解(详细)
STM32+SG90舵机详解(详细)

在开始之前我们要了解控制舵机需要的一个周期是多少秒,是20ms(毫秒),这就意味着,我们配置输出的一个周期必须是20ms,这就需要我们经过分频重装载值来决定。

当初我在这里卡了很久,因为不会计算这个,上网看了很多文章,大家讲的不是很明白,所以我今天详细和大家说说如何分频和写重装载值

首先,我的板子主频是72Mhz,这就意味这一秒种可以计72Mhz的数,可定时器只有16位呀,他的最大值也只是65535,而72M就是72 000k就是72 000 000个数,所以我们必须分频!

那该分多少呢,你想分多少分多少,只要你最后重装载值能圆回来就好。为了好计算这里我分72,就相当于72M主频除72

72M除72=1M /s //经过72分频后就是1秒计1M个数

1M=1 000k=1000 000/s //而1M又等于1 000 000个数,所以1s能计1000 000个数

1s=1 000ms=1000 000us //而1s又等于1000 000us

所以1us=1;

所以经过分频以后我们计一个数的时间就是1us,是吧。

那我们既然已经知道计一个数的时间,也知道我们需要20ms,那我们要计多少个数才有20ms呢,而这个数就是我们要填的重装载值。

既然1us=1

所以20ms=20000us=20000

所以我们要计20000个数才正好是20ms,所以经过72分频下的重装载值要填20000;

这时候我们看资料上是这样写的:

t = 0.5ms——————-舵机会转到 0 °

t = 1.0ms——————-舵机会转到 45°

t = 1.5ms——————-舵机会转到 90°

t = 2.0ms——————-舵机会转到 135°

t = 2.5ms——————-舵机会转到 180°

意思就是在这个20ms的一个周期内,如果有0.5ms是高电平其他都是低电平,那舵机就能转到0度,其他的以此类推。

那我们要计多少个数才是0.5ms呢,答案是500个数。

因为1us=1

所以0.5ms=500us=500

我看很多文章他们喜欢分7200频,都可以的的,大家可以计算一下。

接着我们在循环里面这样写就能运转0度到180度

STM32+SG90舵机详解(详细)

但是但是但是,你怎么知道这计500个数的时间就是高电平的时间呢,怎么就不能是低电平的时间呢,所以要自己设置的,相关的有两个参数,就是下图我框起来的两个参数。

STM32+SG90舵机详解(详细)

首先就是第一条,pwm输出模式是有两个的,一个pwm1,一个pwm2

STM32+SG90舵机详解(详细)

按我的理解来说,pwm1的意思就是先输出有效电平再输出无效电平。而pwm2就是反过来,先输出无效电平再输出有效电平。

而这个有效电平就是你自己来决定的,也就是第二条来决定的,我写的就是有效电平为高电平,当然也可以写有效电平为低电平。

STM32+SG90舵机详解(详细)

所以我配置pwm1模式,有效电平又为高电平就意味这,当我使用这个函数

TIM_SetCompare3(TIM4,500); //0度

他的意思是,输出计500个数的时间的有效电平高电平,剩余的为低电平。

如果你写的是pwm2模式,那意思就是,输出计500个数的时间的低电平,剩余的为有效电平高电平。

当初,不明白这两个参数的含义,也是卡了一阵子。

第一次写文章,同时也是初学者,如果文章当中有什么措辞不对,或者错误的地方,欢迎在评论区指出。文章来源地址https://www.toymoban.com/news/detail-479532.html

到了这里,关于STM32+SG90舵机详解(详细)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32外设系列—sg90(舵机)

    🎀 文章作者:二土电子 🌸 关注文末公众号获取其他资料和工程文件! 🐸 期待大家一起学习交流! 首先介绍说一下什么是舵机。舵机是一种位置(角度)伺服的驱动器。适用于一些需要角度不断变化的,可以保持的控制系统。sg90就是舵机的一种。 舵机的工作原理比较简

    2024年02月15日
    浏览(20)
  • 基于STM32 SG90 9g舵机控制

    产品参数 名称:9克舵机180度 尺寸:23mm X 12.2mm X 29mm 重量:9克 扭矩:1.5kg/cm 工作电压:4.2 - 6V 温度范围:0 - 55℃ 运行速度:0.3s/60℃ 死带宽:10ms 舵机有三条线定义: 暗灰:GND 红色:VCC 4.8V - 7.2V 橙黄线:脉冲输入 在机器人机电控制系统中,舵机控制效果是性能的重要影响

    2024年02月14日
    浏览(15)
  • STM32第七课:PWM控制SG90舵机

            学习完上一课的PWM控制LED小灯实现呼吸灯的效果,我们就可以进一步学习PWM控制舵机的效果了。PWM控制舵机相信会是一个更有意思的小实验的。          舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前在高档

    2024年04月17日
    浏览(14)
  • STM32---SG90舵机控制(HAL库,含源码)

    写在前面: 在嵌入式的项目中,舵机是一个十分常见的元器件模块,其主要的功能是实现机械转动,实质上舵机是一个伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。例如在机器人的电控制器系统中,飞行器设计,遥控机器人等。舵机的使用需要PWM信号

    2024年04月13日
    浏览(12)
  • 【STM32单片机】STM32控制SG90舵机的PWM部分参数的设置解答

    我们要知道,SG90舵机接收的PWM信号的参数:f=50Hz,T=1/f,所以周期为20ms。 当高电平的脉宽在0.5ms-2.5ms之间时舵机就可以对应旋转到不同的角度。 换句话说,我们要用单片机产生一个 周期(20ms) 的PWM波,然后获得对应这些时长(分别是 0.5ms 、 1ms 、 1.5ms 、 2ms 、 2.5ms )的 高电

    2024年02月13日
    浏览(20)
  • 关于四足行走机器人步态分析STM32+SG90舵机控制

    最近逛某站看了很多国赛大佬的赛车,下面评论区一堆大佬在感叹“老师看到赛车都摇头。”作为一个初入STM32坑的萌新,我在某些站上查阅了相关资料后,确定给我自己的机器人搞成四足行走(ps,其实是L298N烧了)。 目前手上的板子是C8T6,学习的视频是江科协,主要代码

    2024年01月21日
    浏览(22)
  • 摇杆按键+SG90 实现舵机云台(STM32F103C8T6)

    STM32F103C8T6最小系统板*1 SG90舵机(180°)*2 摇杆按键*1 舵机支架*1 面包板*1(非必须) 杜邦线若干 类似这种的支架,不过需要自己裁切嵌入的部分 代码很简单,主要使用ADC双通道读取两个电位器的值(实际上就是电压),通过获取到的值的范围来确定上下左右,从而来改变两

    2024年02月14日
    浏览(23)
  • STM32F103RCT6驱动SG90舵机-完成正反转角度控制

    SG90是一种微型舵机,也被称为伺服电机。它是一种小型、低成本的直流电机,通常用于模型和机器人控制等应用中。SG90舵机可以通过电子信号来控制其精确的位置和速度。它具有体积小、重量轻、响应快等特点,因此在各种小型机械设备上得到了广泛应用。 SG90舵机通常用于

    2024年02月03日
    浏览(30)
  • SG90舵机使用介绍

    型号:SG90 接线 黄线:信号线 红线:电源线 棕线:地线 PWM周期 需要通过信号线往舵机输入PWM波,才能驱动舵机转动 PWM波的频率不能太高,大约50HZ,即周期=1/频率=1/50=0.02s,20ms左右 舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角

    2024年02月13日
    浏览(15)
  • STM32F103C8T6驱动舵机SG90 配置定时器TIM2,TIM3,TIM4的多种重映射模式下的不同IO口

    1.使用到的工具介绍 2.整个简单介绍 3.程序的介绍 1.使用到的工具介绍: keil5,烧写软件FlyMcu.exe,硬件为STM32F103C8T6板,SG90舵机还有按键。 2.整个简单介绍: 通过对舵机的了解我这里使用的是sg90舵机可旋转180度,使用的芯片是stm32f103c8t6。在配置2个按键来进行舵机角度加减

    2023年04月18日
    浏览(19)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包