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 实物图和接线

STM32应用(一)控制舵机SG90/MG996R/数字舵机_第1张图片

舵机上有三根线,分别是GND(棕色线)、VCC(红色线)和SIG(黄色线),也就是地线、电源线和信号线。

SG90舵机 STM32
VCC 5V
GND GND
SIG PWM产生通道

舵机的控制,需要一个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。

STM32应用(一)控制舵机SG90/MG996R/数字舵机_第2张图片
84M/84=1Mhz,即在1s内计数一百万次,我们需要设定20ms,则重装载值应为20000。
STM32应用(一)控制舵机SG90/MG996R/数字舵机_第3张图片
检查GPIO。
STM32应用(一)控制舵机SG90/MG996R/数字舵机_第4张图片

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 实物图

STM32应用(一)控制舵机SG90/MG996R/数字舵机_第5张图片

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位数码管显示模块
STM32应用(一)控制舵机SG90/MG996R/数字舵机_第6张图片

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/数字舵机_第7张图片

主要看工作电压和脉宽范围。
这些舵机原理和代码与上述一致。博客也有很多。欢迎批评指正。

你可能感兴趣的:(STM32CubeMx,stm32)