首页 > 其他分享 >STM32智能小车控制舵机转向

STM32智能小车控制舵机转向

时间:2023-12-18 16:01:38浏览次数:32  
标签:htim1 舵机 小车 void STM32 TIM ms SG90

(文章目录)


前言

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

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

信号线(黄线)红线(电源线)棕色(地线) 舵机的控制一般需要一个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);
}
#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

总结

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

标签:htim1,舵机,小车,void,STM32,TIM,ms,SG90
From: https://blog.51cto.com/u_16153875/8874894

相关文章

  • STM32学习笔记_PWM驱动舵机和直流电机(4)
    STM32驱动舵机:舵机接线图:将PWM脚接在开发板PA1处;新建舵机模块:分析舵机的PWM信号:在一个周期20ms的脉冲信号上,高电平占空比为0.5ms-2.5ms分别对应着0°-180°。计算PWM的参数信息:PSC为72,ARR为20K,这样就得到一个频率周期为50Hz的信号。其中20KHz等于20ms,将CCR设置为500即=0.5ms的占空......
  • STM32智能小车循迹教程
    (文章目录)前言本篇文章将带大家学习STM32智能小车的循迹功能。一、红外循迹模块工作原理及接线图红外循迹模块工作原理电路工作描述以其中一路为例TCRT5000传感器的红外发射二极管不断发射红外线,当发射的红外线没有被反射回来或者反射回的强度不够大时,红外接收管一直处于......
  • 鸿蒙小车之多任务调度实验
    说到鸿蒙我们都会想到华为mate60:遥遥领先!我们一直领先!我们这个小车也是采用的是鸿蒙操作系统,学习鸿蒙小车,让你遥遥领先于你的同学。@TOC前言本专栏将依次介绍鸿蒙小车的内核实验,硬件实验,wifi实验。一、什么是任务?为什么要有任务任务是操作系统(RTOS)中的基本组成单元,它们为嵌入式......
  • 【STM32】STM32启动流程
    概述从上电复位到main函数的过程主要由以下步骤:1.初始化堆栈指针SP=_initial_sp,初始化PC指针=Reset_Handler2.初始化中断向量表3.配置系统时钟4.调用C库函数_main初始化用户堆栈,然后进入main函数1.STM32的启动模式STM32的启动模式决定了向量表的位置,STM32有三种启动模式:(......
  • STM32在CTF中的应用和快速解题
    题目给的是bin文件,基本上就是需要我们手动修复的固件逆向。如果给的是hex文件,我们可能需要使用MKD进行动态调试主要还是以做题为目的详细的可以去看文档:https://pdf1.alldatasheet.com/datasheet-pdf/view/201596/STMICROELECTRONICS/STM32F103C8T6.htmlSVD文件下载:https://gi......
  • STM32学习随笔 12.13
    慢摸摸的学习之前跟着B站江协科技UP学51感觉没啥,学到STM32就感觉很吃力,又想钻研清楚,看到定时器TIM章节零零总总差不多耽搁快进一个月了总结下近期学到的东西学习掌握多元条件运算符,这样可以省略很多if()else()或者switch()case;语句示例:      i-=(i>10000)?10......
  • STM32学习笔记_外部中断EXTI
    中断:在主程序中运行过程中,出现了特定的中断触发条件,使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行。中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源。中断嵌套:当一个中断程序正在......
  • 怎么用stm32 flash来实现数据掉电不丢失
    参考战舰的FLASH模拟EEPROM实验 比如,#defineFLASHADDR_START0x08006800写:u32Data=0x20161109;FLASH_Unlock();FLASH_ErasePage(FLASHADDR_START);FLASH_ProgramWord(FLASHADDR_START,Data);FLASH_Lock();读:u32Data;Data=*(u32*)FLASHADDR_START;   ......
  • stm32 cubeide调试问题汇总
    stm32cubeide调试问题汇总1.STM32CubeIDE无法进行调试报以下错误Targetisnotresponding,retrying...Targetisnotresponding,retrying...Targetisnotresponding,retrying...Targetisnotresponding,retrying...Targetisnotresponding,retrying.........
  • STM32学习笔记_GPIO相关知识&LED流水灯
    GPIO的内部结构:在STM32中,所有的外设都是挂载在APB2外设总线上的,GPIO内包含了寄存器和驱动器,内核通过APB2总线对寄存器进行读写,寄存器的每一位对应每一个引脚。驱动器是用来增强GPIO驱动能力的GPIO位的内部结构:在下结构图中,信号从右边的I/0引脚输入,通过内部的上拉或下拉开关进行到TT......