【mcuclub】舵机 |
您所在的位置:网站首页 › CAD实物图 › 【mcuclub】舵机 |
一、实物图(SG90)
二、原理图
编号名称功能1GND电源地(棕色线)2VCC电源正(红色线)3I/O信号线(黄色线)
三、简介
舵机(英文叫Servo),是伺服电机的一种,伺服电机就是带有反馈环节的电机,这种电机可以进行精确的位置控制或者输出较高的扭矩。舵机也叫RC伺服器,通常用于机器人、遥控汽车,飞机航模等。类似舵机这样的伺服系统通常由小型电动机,电位计,嵌入式控制系统和变速箱组成。电机输出轴的位置由内部电位计不断采样测量,并与微控制器(例如STM32,Arduino)设置的目标位置进行比较;根据相应的偏差,控制设备会调整电机输出轴的实际位置,使其与目标位置匹配,这样就形成了闭环控制系统。 四、内部结构①:信号线:接收来自微控制器的控制信号; ②:电位器:可以测量输出轴的位置量,属于整个伺服机构的反馈部分; ③:内部控制器:处理来自外部控制的信号,驱动电机以及处理反馈的位置信号,是整个伺服机构的核心; ④:电机:作为执行机构,输出多少转速,转矩,位置; ⑤:传动机构/舵机系统:该机构根据一定传动比,将电机输出的行程缩放到最终输出的角度上; 五、工作原理舵机内部有一个基准电路,产生周期为20ms、宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。经过电路板IC方向判断,再驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回信号,判断是否已经到位。 舵机转动的角度是通过调节PWM信号的占空比来实现的。标准的PWM信号的周期固定为20ms,理论上脉宽分布应该在1ms到2ms之间,实际上在0.5ms到2.5ms之间,脉宽与转角0°——180°相对应。不同厂家不同型号的舵机也会有所差异。 六、程序/********************************** 变量定义 **********************************/ uint servo_pwm = 4; //舵机pwm值 /********************************** 函数定义 **********************************/ /**** *******定时器0初使化函数 *****/ void Timer0_Init(void) { TMOD &= 0xF0; //清除 T0 的工作模式 TMOD |= 0x01; //配置 T0 的GATE=0;C/T=0; M1=0; M0=1;(模式1(16位)) TH0 = (65536-92)/256; //配置 T0 高8位计数初始值 TL0 = (65536-92)%256; //配置 T0 低8位计数初始值 TR0 = 1; //启动 T0 ET0 = 1; //启动 T0 中断 EA = 1; //打开总中断 } /**** *******T0计时中断函数 *****/ void Timer0_Handler(void) interrupt 1 { static uint timer0_count; TR0 = 0; //关定时器 TH0 = (65535-92)/256; //重新赋初值 TL0 = (65535-92)%256; timer0_count++; if(timer0_count >= 200) //定义一个周期,T = 20ms清零 { timer0_count = 0; } if(timer0_count < servo_pwm) //调节占空比 { SERVO = 1; } else { SERVO = 0; } TR0 = 1; //开定时器 } 流程设计首先初始化引脚,然后初始化定时器,在定时器中断函数中定义一个周期,调节周期内高电平的占空比,从而调整角度。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |