stm32f103vet6-PWM驱动SG90舵机

news/2024/11/7 15:36:29/

SG90舵机

  • 1.sg90
    • 舵机
    • 工作原理
    • 控制
    • 应用
    • 引脚
  • 2.PWM
  • 3.资源代码
  • 4. 成果演示
  • 5. 工程获取

1.sg90

舵机

在这里插入图片描述

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

工作原理

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

控制

舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。以180度角度伺服为例,那么对应的控制关系是这样的:
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;

应用

     1.    高档遥控仿真车,至少得包括左转和右转功能,高精度的角度控制,必然给你最真实的驾车体验.2.    多自由度机器人设计,为什么日本人设计的机器人可以上万RMB的出售,而国内设计的一些两三千块也卖不出去呢,还是一个品质的问题.3.    多路伺服航模控制,电动遥控飞机,油动遥控飞机,航海模型等

引脚

本次使用的是STM32F103RCT6/STM32F103VET6,通道设置的是TIM2-CH4.在这里插入图片描述

PB11TIM2->CH4
VCC+5V
GNDGND

控制原理及PWM配置
舵机的控制一般需要一个20ms的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分

PWM周期为20ms = (7200*200)/72000000=0.02
所以TIM_Period = 199,TIM_Prescaler = 7199

占空比 = t / T 相关参数如下:
t = 0.5ms——————-舵机会转动 0 °
t = 1.0ms——————-舵机会转动 45°
t = 1.5ms——————-舵机会转动 90°
t = 2.0ms——————-舵机会转动 135°
t = 2.5ms——————-舵机会转动180°

PWM占空比是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比,由于PWM周期为20ms,所以(以舵机会转动 45°为例),占空比就应该为1ms/20ms = 5%,所以TIM_SetCompare1的 TIMx 捕获比较 1 寄存器值就为200-200*5% = 190

2.PWM

PWM 详解——呼吸灯应用

3.资源代码

pwm_init

// An highlighted block
void TIM2_Configuration( void)
{RCC->APB1ENR |= RCC_APB1ENR_TIM2EN ; //使能RCC->APB2ENR |= RCC_APB2ENR_AFIOEN | RCC_APB2ENR_IOPBEN;AFIO->MAPR = AFIO_MAPR_TIM2_REMAP;TIM2->ARR  = 240;//最大计数值TIM2->PSC = 999;//TIM2->CR1 &=~TIM_CR1_DIR; TIM2->CCMR2 |= TIM_CCMR2_OC4M_1|TIM_CCMR2_OC4M_2  |    TIM_CCMR2_OC4PE ;TIM2->CR1 |= TIM_CR1_ARPE;TIM2->CCR4 = 50;TIM2->CCER |= TIM_CCER_CC4P |TIM_CCER_CC4E ;TIM2->EGR |= TIM_EGR_UG;TIM2->RCR = 1;TIM2->CR1 = TIM_CR1_CEN;TIM2->BDTR |= TIM_BDTR_MOE;}

main

// An highlighted block
int main(void)
{int i = 0;RCC->APB2ENR = RCC_APB2ENR_IOPAEN;GPIOA->CRH |= (GPIOA->CRH & 0XFFFFFFF0) | 0X3;GPIOA->ODR &=~GPIO_ODR_ODR8;TIM2_Configuration();GPIOB->CRH = (GPIOB->CRH & 0XFFFF0FFF) | 0XB000;while(1){for( ; i < 250 ; i++){TIM2->CCR4 = i+0;for(int i = 0; i< 90000;i++);}for( ; i > 0 ; i--){TIM2->CCR4 = i+0;for(int i = 0; i< 80000;i++);}}	return 0;
}

4. 成果演示

在这里插入图片描述
图片显示的是上示代码的结果
后续补摄像头转动角度

演示视频

演示视频

5. 工程获取

链接: 工程连接.
或者
:关注微信公众号:媒想到叭
回复:舵机


http://www.ppmy.cn/news/178971.html

相关文章

NWD(2022)

A Normalized Gaussian Wasserstein Distance for Tiny Object Detection Abstract 检测微小物体是一个非常具有挑战性的问题&#xff0c;因为微小物体仅包含几个像素大小。我们证明&#xff0c;由于缺乏外观信息&#xff0c;最先进的检测器无法在微小物体上产生令人满意的结…

磊科nw336 linux驱动程序,Ubuntu 10.04 安装磊科nw336驱动 rtl8188su rtl8192su

Ubuntu 10.04 安装磊科nw336驱动 rtl8188su rtl8192su 1、下载rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100202.zip 相关文件下载地址在Linux公社的1号FTP服务器里&#xff0c;下载地址&#xff1a; 在 2011年LinuxIDC.com\8月\磊科NW330 Linux下驱动安装记 2、执行命令…

Web3 库

文章目录 Web3.py1. 安装2. 使用2.1 连接2.2 查询余额2.3 查询 ERC-20 Token2.4 转账2.4 转账 ERC20的Token2.5 访问合约 Web3.py API文档&#xff1a;https://web3py.readthedocs.io/en/stable/index.html 1. 安装 注意安装时如果出错&#xff0c;可能需要先安装c pip ins…

华为商业级AC6005+AP3030DN无线WIFI组网

网络隔离之多SSID测试 如同交换机中的VLAN一样&#xff0c;对于积极部署无线网络的商业用户来说&#xff0c;AP同样需要提供网络隔离能力&#xff0c;以保证网络的基本安全。其中对于中小型企业来说&#xff0c;通常会设有行政、技术、销售、财务等诸多部门&#xff0c;且每个部…

磊科nw336 linux驱动程序,磊科NW336 V2驱动

磊科netcore NW336 V2无线网卡驱动是磊科官方针对该型号无线网卡推出的驱动程序&#xff0c;主要用于解决网卡无法被电脑识别或者不能正常连接网络等问题&#xff0c;安装驱动后&#xff0c;用户就可以使用无线网卡进行上网了&#xff0c;小编提供了驱动下载&#xff0c;需要的…

ESP32超详细学习记录:wifi配网,AP配网,浏览器配网,无线配网

不想了解代码实现&#xff0c;可直接到代码部分copy&#xff01;ESP32亲测可用。 使用设备ESP32开发板&#xff08;ESP32-WROOM-32&#xff09; 搜了好多别人写的资料&#xff0c;很多都是copycopy&#xff0c;也没有什么解释。啪&#xff0c;代码放在那里&#xff0c;自己看…

HarmoneyOS入门--下载与安装DevEco Studio运行helloworld

下载与安装DevEco Studio 在HarmonyOS应用开发学习之前&#xff0c;需要进行一些准备工作&#xff0c;首先需要完成开发工具DevEco Studio的下载与安装以及环境配置。 下载DevEco Studio 下载完成后&#xff0c;双击下载的“deveco-studio-xxxx.exe”&#xff0c;进入DevEco S…

磊科NW330 LINUX下驱动安装记

坑爹的驱动 估计很多人会遇到这个问题&#xff0c;所以写个记录&#xff0c;也免得后面自己忘了 正常流程 1、去磊科官方下载 2、执行命令&#xff1a; $ unzip rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100202.zip $ cd rtl8712_8188_8191_8192SU_usb_linux_v…