STM32基础知识:PWM控制舵机

发布时间:2024-03-21  

PWM控制舵机

1 舵机简介

伺服电机通常被称为舵机,它是一种带有输出轴的小装置。当我们向伺服器发送一个控制信号时,输出轴就可以转到特定的位置。只要控制信号持续不变,伺服机构就会保持轴的角度位置不改变。如果控制信号发生变化,输出轴的位置也会相应发生变化。日常生活中,舵机常被用于遥控飞机、遥控汽车、机器人等领域。

舵机在机器人领域非常有用。因为舵机有内置的控制电路,它们的尺寸虽然很小,但输出力够大。像Futaba S-148这样的标准舵机能提供 0.3牛/米的扭矩,相对于它的外形大小来说这已经足够强大了。同时,舵机消耗的能量与机械负荷成正比。因此,一个轻载的舵机系统不会消耗太多的能量。


2 舵机结构

舵机主要由以下几个部分组成:外壳、舵盘、直流电机、减速齿轮组、角度传感器、控制驱动电路和接口线缆等。常见的舵机内部结构如下图所示。

图片

图片

舵机的输入有三根线,一般的中间的红色线为电源正极,咖啡色线的为电源负极,黄色色线为控制线号线。

3 舵机控制

图片

控制线用于传输角度控制信号。这个角度是由控制信号脉冲的持续时间决定的,这叫做脉冲编码调制(PCM)。舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围,总间隔为2ms。脉冲的宽度将决定马达转动的距离。

例如:1.5毫秒的脉冲,电机将转向90度的位置(通常称为中立位置,对于180°舵机来说,就是90°位置)。如果脉冲宽度小于1.5毫秒,那么电机轴向朝向0度方向。如果脉冲宽度大于1.5毫秒,轴向就朝向180度方向。以180度舵机为例,对应的控制关系是这样的:

0.5ms 0度
1.0ms 45度
1.5ms 90度
2.0ms 135度
2.5ms 180度

4 任务实践

通过按键控制舵机角度,当KEY1按下后, 减少占空比,当KEY2按下后,增加占空比,并在串口输出此时的角度。

  1. PWM参数计算
    PWM信号周期Period=20ms,采用STM32内部8MHz的时钟,计算可得(ARR+1)*(PSC+1)=160000,故可取ARR=199,PSC=799。舵机为0度时,高电平持续时间为0.5ms,即占空比Duty=0.025,则CCR初始值可以设为5.

PWM参数计算在STM32基础:定时器的PWM输出功能中有详细讲解。

  1. 在CubeMX中配置PWM(采用定时器3通道1)、串口以及按键1和按键2对应GPIO为中断模式并使能.
    图片
    图片

在CubeMX中配置串口,在Keil中使用“Use MicroLIB”并在代码中重定向printf函数的方法在STM32基础:定时器的定时计数功能有详细讲解。

在CubeMX中配置GPIO中断并使能的方法已经按键的相关操作在STM32基础:中断系统中有详细讲解。


编写代码


/* USER CODE BEGIN PD */

#define CCR_MAX 25  // CCR最大值

/* USER CODE END PD */


/* USER CODE BEGIN PV */

uint16_t CCR = 5;   // CCR初始值

uint16_t Step = 5;  // CCR步进值

/* USER CODE END PV */


/* USER CODE BEGIN 4 */

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)

{

  if(GPIO_Pin == KEY1_Pin)

  {

    (CCR >= CCR_MAX) ? (CCR = 5) : (CCR += Step);

    __HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_1, CCR);

    printf("Sigle = %d", (CCR/5 - 1)*45);

    HAL_Delay(200);

  }

  else if (GPIO_Pin == KEY2_Pin)

  {

    (CCR <= 5) ? (CCR = CCR_MAX) : (CCR -= Step);

    __HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_1, CCR);

    printf("Sigle = %d", (CCR/5 - 1)*45);

    HAL_Delay(200);

  }

}


/* USER CODE END 4 */


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    舵机中的直流电机控制原理和方法;本文简单介绍在舵机中的直流电机控制原理和方法。下图是控制器原理图,单片机选择stm32f030,驱动选择fm116b,ldo为lp2992,这个......
    ) sg90舵机控制原理 本文采用的是定时器0来计时,初始值设为0.5ms,每次定时器溢出是0.5ms,设置一个计数值count=0,每一个0.5ms count都会自增1,加了40次就20ms......
    是船舶上的一种大甲板机械。   本文主要介绍的是51单片机PWM舵机控制,具体的跟随小编来了解一下。   51单片机PWM舵机控制详解   使用的舵机——盛辉SG90舵机(标准版)      盛辉SG90舵机的工作原理......
    太多了通道不够用呀) 初始化定时器(注意:高级定时器要在通用定时器之后初始化,如果在前编译通过但会出异常,极易烧毁舵机!!!) 2)测出各个舵机的中值,之后都是用PWM值对应角度的,不了解的小伙伴可以搜下舵机控制原理......
    曼小车仿真设计 本节先介绍阿克曼小车模型,小车仿真设计包括SolidWorks和gazebo三维建模。 1.1.1 阿克曼小车 阿克曼小车是一款经典的车模,小车模型后轮是通过电机直驱,前轮通过舵机控制......
    的内部是由直流电机、减速齿轮组、传感器和控制电路组成,是一个闭环的控制系统,它的原理框图如下: 舵机的轴上连接有一个电位器作为位置检测传感器,舵轴转动时,电位器输出的电压会变化(也就是可以通过电压得知舵轴的角度)。外部输入控制......
    STM32基础知识:PWM控制舵机;PWM控制舵机 1 舵机简介 伺服电机通常被称为舵机,它是一种带有输出轴的小装置。当我们向伺服器发送一个控制信号时,输出轴就可以转到特定的位置。只要控制......
    器中进行处理和调节,可以实现更加稳定和准确的电机控制。 总之,永磁直流力矩电机的控制原理是通过控制电机输入的电流和电压,以及使用合理的控制算法和反馈系统,实现对电机的稳定、准确的控制和调速。 ......
    在ROS学习平台中常常使用到的直流电机控制原理与驱动电路;在使用ROS机器人构建地图的过程中,需要在房间内自主运行,采集地图信息。这个过程中需要控制电机的正反转,电机的转速,以适应机器人直行,转弯......
    通讯作者为李全彬。 参考文献 [1] 李红培 . 空调挡风板对房间内气流组织影响 [J]. 洁净与空调技术,2019,26(1):44-48. [2] 满宪金,李海涵 . 自动控制原理在机电工程自动化控制......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>