当前位置:   article > 正文

STM32智能小车控制舵机转向_智能小车转向角度一般是多少度

智能小车转向角度一般是多少度


前言

本文将带大家学习如何驱动舵机转向以及控制转向的角度值。

一、舵机简单介绍及接线方式

信号线(黄线)红线(电源线)棕色(地线)
舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分,总间隔为2ms。以180度角度伺服为例,那么对应的控制关系是这样的:
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;
在这里插入图片描述

二、cubeMX配置

前面我们说过舵机的控制一般需要一个20ms左右的时基脉冲,所以我们要将舵机的PWM的频率设置为50HZ。
电机的驱动引角接到了PA8所以将cuebMX配置如下:
在这里插入图片描述

三、代码解析

SG90.c

#include "SG90.h"

extern TIM_HandleTypeDef htim1;

/*
函数功能:舵机初始化
*/
void SG90_Iint(void)
{
  HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);
  __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1,50);
}
SG90.h
/*
函数功能:舵机角度设置
angle:角度值 范围(0°~180°)
*/
void SG90_Set(int angle)
{
  int PWM=10*angle/9+50;
  __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1,PWM);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
#ifndef _SG90_H_
#define _SG90_H_

#include "main.h"

#define u8 unsigned char
#define u16 unsigned short
#define u32 unsigned int

void SG90_Iint(void);
void SG90_Set(int angle);


#endif
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

总结

本文简单介绍了舵机的使用方法,希望大家下去好好理解消化。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/1010928?site
推荐阅读
相关标签
  

闽ICP备14008679号