MG90S舵机驱动原理和程序代码
舵机控制原理:
舵机的控制信号为周期是 20ms 的脉宽调制(PWM)信号,其中脉冲宽度从 0.5ms-2.5ms,相对应舵盘的位置为 0-180 度,呈线性变化。也就是说,给它提供一定的脉宽,它的输出轴就会保持在一个相对应的角度上,无论外界转矩怎样改变,直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应的位置上。
一般而言,舵机的基准信号都是周期为20ms,宽度为1.5ms。这个基准信号定义的位置为中间位置。
其中间位置的脉冲宽度是一定的,那就是1.5ms。
角度是由来自控制线的持续的脉冲所产生。这种控制方法叫做脉冲调制。脉冲的长短决定舵机转动多大角度。
当舵机接收到一个小于1.5ms的脉冲,输出轴会以中间位置为标准,逆时针旋转一定角度。接收到的脉冲大于1.5ms情况相反。不同品牌,甚至同一品牌的不同舵机,都会有不同的最大值和最小值。一般而言,最小脉冲为1ms,最大脉冲为2ms。
可以通过调节PWM的占空比控制舵机的转向角度。
文章转载来源:https://blog.csdn.net/avrmcu1/article/details/24384745
#ifndef __STEERING_H
#define __STEERING_H
#include "sys.h"
void TIM4_PWM_Init(u16 arr,u16 psc);//TIM4_CH1
#endif
#include "steering.h"
void TIM4_PWM_Init(u16 arr,u16 psc)
{GPIO_InitTypeDef GPIO_InitStructure;TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_OCInitTypeDef TIM_OCInitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 ;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);TIM_TimeBaseStructure.TIM_Period = arr;TIM_TimeBaseStructure.TIM_Prescaler =psc;TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC1Init(TIM4,&TIM_OCInitStructure); TIM_Cmd(TIM4,ENABLE); }
TIM4_PWM_Init(199,7199);while(1){delay_ms(10);TIM_SetCompare1(TIM4,5); delay_ms(300);TIM_SetCompare1(TIM4,10);delay_ms(300);TIM_SetCompare1(TIM4,15);delay_ms(300);}
应为T=20ms,所以对应的f=1/T=50HZ
频率:pwm = 72M / ((arr+1)*(psc+1))(单位:Hz)
占空比:TIM3->CCR1 / arr(单位:%)
注意:如果定时器模式选择为:
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
那么对应的输出比较极性为:
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
相反:
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
MG90S舵机驱动原理和程序代码相关推荐
- STM32液晶显示HT1621驱动原理及程序代码
1.HT1621电路分析 HT1621为32×4即128点内存映像LCD驱动器,包含内嵌的32×4位显示RAM内存和时基发生器以及WDT看门狗定时器. HT1621驱动电路如下图所示: 图1 与单片机 ...
- ht1621b和单片机电平匹配_STM32液晶显示HT1621驱动原理及程序代码
1 unsigned char Lcdram[32]= 2 {3 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,4 0x00,0x00,0x00,0x00,0x00, ...
- STM32CubeMX(09)MG90S舵机驱动实验
文章目录 前言 一.舵机是什么? 二.STM32CubeMX配置 2.1时钟树配置 2.2定时器配置 2.3生成代码 三.代码编写 四.测试结果 注意: 总结 前言 今天我们来学习使用一下舵机,并用S ...
- Baize_ServoDriver_esp8266-(arduino32路舵机驱动板)(开源可自制,附程序和固件以及烧录方法)
导航在这里:白泽六足机器人_arduino_v1 介绍 先放资料 github:GitHub - Allen953/Baize_ServoDriver_esp8266 立创开源地址:https://o ...
- LoRa SX1278/76驱动原理 附代码
LoRa SX1278/76驱动原理 附代码 原理解释 LoRa 关键参数说明 前导码: 报头: 显式报头模式: 隐式报头模式: LoRa 调制解调: 扩频因子: 编码率: 信号带宽: 代码说明 SP ...
- Baize_ServoDriver_esp32——arduino 32路舵机驱动板(esp32主控,免费开源,附程序、固件)
该机器人开发板的用法和介绍以本文章为准. 最新的代码github仓库为准:https://github.com/Allen953/Baize_ServoDriver_esp32 介绍 仓库总是存放最 ...
- MG995舵机工作原理及基于STM32的驱动源代码
MG995舵机工作原理及基于STM32的驱动源代码 一·MG995舵机工作原理 1.MG995舵机简介 产品型号 MG995 产品尺寸 40.7*19.7*42.9mm 产品重量 55g 工作扭矩 1 ...
- K210、Openmv与串行总线舵机通信(基于micropython)舵机驱动板和舵机控制板代码
最近博主在使用幻尔公司 串行总线舵机时,想使用k210控制,由于官方没有相关例程(树莓派的版本是python版本代码,用不了)特此分享一下控制代码 主要调用函数 a.to_bytes(x,'littl ...
- arduino 舵机接线图_arduino+16路舵机驱动板连接测试(示例代码)
用Arduino类库驱动舵机并不是一件难事,如果需要驱动很多电机,就需要要占用更多的引脚,也会影响到Arduino的处理能力.专门的舵机驱动板很好的解决了这个问题. 此舵机驱动板使用PCA9685芯片 ...
最新文章
- java 电梯算法_编程之美之小飞的电梯调度算法(多种解法)---Java语言
- 高性能对象存储MinIO学习
- 【C语言笔记初级篇】第四章:数组入门
- Swoole 2019 :化繁为简、破茧成蝶
- 孙鑫-MFC笔记一--Windows程序内部运行机制
- python 进行后端分页详细代码
- 怎么做应力应变曲线_浅析基桩低应变检测技术
- 把mysql数据展示为图表_怎么从数据库中调出数据并生成动态图表?
- 如何设计可靠的灰度方案
- python pdb模块_Biopython PDB模块
- PDF转Word图片转Word教程(附工具地址)
- (一)5G网络超低延迟背后的黑科技
- Guiding Teacher Forcing with Seer Forcing for Neural Machine Translation翻译
- AD16弹出错误对话框
- js统计字符串中大写字母与小写字母的总个数
- iPad 手指触摸与PC鼠标事件
- pinyin4j使用说明
- 开启超高清时代 联诚发5G+8K大屏点亮智慧展厅及银行业
- SOPHON sail.Decoder无法正常解码rtsp流(使用ffmpeg和opencv可以正常解码)
- 操作系统MIT6.S081:P7->Interrupts
热门文章
- 常见笔记本BIOS启动键总结( 超级详细 ! ! ! )
- You have new mail in /var/spool/mail/root
- JVM基础 -> GC分代: MinorGC MajorGC FullGC Mixed GC
- PostGIS 路线规划
- html 原生弹出框,html、css和js原生写一个模态弹出框,顺便解决父元素半透明子元素不透明效果...
- 中国SEO可持续性发展问题
- 虚拟语气在条件句中的应用
- Task02:baseline学习及改进
- 推荐一个还不错的医学网站
- Mysql传智jing_dong数据库