资讯详情

【STM32】数码管显示按键控制舵机转动的角度(二)

舵机使用及原理介绍:

1.1 模块外观

1.2 模块概述 舵机控制效果是影响机器人机电控制系统性能的重要因素。舵机可作为微机电系统和航模的基本基础 输出执行机构,其简单的控制和输出使单片机系统非常容易接口。 舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前在高档 遥控玩具,如航模,包括飞机模型和潜艇模型;遥控机器人已被广泛使用。舵机俗称,其实是一种 种植伺服电机。

1.2.1 工作原理 控制信号通过接收器通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,生产周期为 20ms, 宽度为 1.5ms 基准信号将获得的直流偏置电压与电位器的电压进行比较,获得电压差输出。最后,正负电压差 输出到电机驱动芯片决定电机的正反转。当电机转速一定时,电位器通过级联减速齿轮旋转,使电压差为 电机停止转动。当然我们可以不用去了解它的具体工作原理,知道它的控制原理就够了。就像我们用晶体一样 管道是一样的。你知道你可以用它做开关管或放大管。至于管道中的电子如何流动,根本不需要考虑。

1.2.2 舵机控制原理 舵机的控制通常需要一个 20ms 时基脉冲左右,脉冲的高电平部分一般为 0.5ms~2.5ms 角度控制范围内 脉冲部分。以 180 以角度伺服为例,相应的控制关系如下: 0.5ms------------0 度; 1.0ms------------45 度; 1.5ms------------90 度; 2.0ms-----------135 度; 2.5ms-----------180 度;

小型舵机的工作电压一般为 4.8V 或 6V,速度不是很快,通常是 0.22/60 度或 0.18/60 所以,如果你改变它 当角度控制脉冲宽度过快时,舵机可能无法反应。若需要更快的反应,则需要更高的速度。 应用领域 ?高档遥控仿真车 ?多自由度机器人设计 ?多路伺服模控制 ?电动遥控飞机 ?油动遥控飞机 ?航海模型

1.4 我使用的F103c8t控制,控制舵机的代码是指B站江科大,您可以搜索。

main.c:

#include "stm32f10x.h"   #include "delay.h" #include "common.h" #include "TM1637.h" #include "Servo.h" #include "Key.h"   uint8_t KeyNum; uint8_t  Angle;  int main(void) {  delay_init();  Servo_Init();  Key_Init();  GPIO_Config();   while (1)  {   KeyNum = Key_GetNum();   if (KeyNum == 1)   {    Angle  = 30;    if (Angle > 180)    {     Angle = 0;    }   }   Servo_SetAngle(Angle);   TM1637_display(0,Angle/100,(Angle/10),Angle,0);         /*把Angle提出显示在数字管上的个位、十位、百位*/     } }

Servo_SetAngle()函数:

void Servo_SetAngle(float Angle) { PWM_SetCompare2(Angle / 180 * 2000 500); }

为什么要这样设置,因为Angle是舵机旋转角度的变量,Angle=0,重装值500就对应舵机的0度;Angle=180,重装值2500对应舵机180度,因此有上述关系。

1.5 接线图

看链接介绍数码管https://blog.csdn.net/weixin_45047844/article/details/105745479?utm_source=app&app_version=5.3.1&code=app_1562916241&uLinkId=usr1mkqgl919blen

数码管CLK接单片机的PA3引脚,DIO接PA2,VCC接3.3v,GND按键接地PB1。

1.6 最后附上实验结果效果图:

按下按钮,舵机转动一个角度,数字管显示相应的转动角度。

如果需要代码,在评论区留言,留言qq邮箱,我发你。

标签: 获取电位器的角度

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台