大家好,又见面了,我是你们的朋友全栈君。
一、舵机实物图
就像上面这张照片,相信大家都不会陌生,我们常见到的舵机就是这个模样,一般是塑料外壳,当然很少见的也有金属外壳的舵机,因为涉及到控制信号,所以一般有三条引出线。
像上图所示的样子,舵机有一个三线的接口。黑色线(或棕色线)是接地线,红线接+5V电压,黄线(或是白色或橙色)接控制信号端。(而步进电机一般会有4~6根不等的引出线)
二、舵机的内部结构
各种品牌型号舵机的样子,长的几乎都是差不多的,一般情况下,舵机的输出轴都是偏向一边的,这是由于内部齿轮组的安装方式的原因,如果拆开舵机,我们就会发现更多真相。我们可以很明显的看出,舵机和步进电机的动力是有着很大区别的,舵机的驱动力来自——直流电机,通过变速齿轮的传动和变速,将动力传输到输出轴,同时,舵机内部都设有角度传感器和控制电路板,用来参与舵机的转动角度的控制和信号的反馈检测工作。
如果还不够直观的话,我们再来看一张舵机实物的拆解图,你就不用再拆了,因为拆了也是一样的内部构造。
三、舵机的闭环检测机制
关于舵机的精准位置控制,存在以下如下图的闭环控制机制。即:位置检测器(角度传感器)是它的输入传感器,舵机转动的位置变化,位置检测器的电阻值就会跟着变化。通过控制电路读取该电阻值的大小,就能根据阻值适当调整电机的速度和方向,使电机向指定角度旋转。从而实现了舵机的精确转动的控制。
四、舵机的工作原理
舵机的工作原理可以通过下面这张简单的流程图说明,结合上面所说的闭环检测机制内容,相信你很轻松的就可以了解舵机的工作流程和工作原理了。
说到舵机的控制信号,一般是脉宽调制(PWM)信号,如下图,直观反映了PWM信号和舵机转动角度的关系,你也可以简单的理解为,通过给舵机通电的时间控制,结合角度传感器的反馈信号检测和控制,实现了舵机的精确角度控制。
舵机的控制信号周期为20MS的脉宽调制信号(PWM),其中脉宽从0.5ms-2.5ms,相应的舵盘位置从0-180度,呈线型变化。也就是说,给舵机提供一定的脉宽,他的输出轴就会保持一定的对应角度,无论外接转矩怎么改变,知道给他提供另外一个脉冲信号,他才会改变输出角度到新的对应的位置上。
舵机内部有一个基准电路,产生周期为20MS,宽度为1.5MS的脉冲信号,有一个比较器,将外加信号与基准信号相比较,判断出方向和大小,从而产生电机的转动信号。
舵机是一种位置伺服驱动器,转动范围不能超过180度,适用于那些需要不断变化并可以保持的驱动器中,比喻说机器人的关节、飞机的多面等。
注意:舵机的运动范围是180度,我曾经参加了一个教育机器人的比赛,其实就是一个小车加上几个传感器,当时用的PARALLAX的电机,以为PARALLX是舵机,我很疑惑,今天在书上看到舵机的旋转范围是180,180度的话,小车不是只能走半圈?所以之前用的PARALLAX是改造过的伪舵机。
五、180度电机与360度电机
360度舵机与一般舵机的区别是:给一般舵机一个PWM信号,舵机会转到一个特定角度,而给360度舵机一个PWM信号,舵机会以一个特定的速度转动,类似与电机。但与电机不同的是,360舵机是闭环控制,速度控制稳定。
PWM信号与360舵机转速的关系:
0.5ms—————-正向最大转速;
1.5ms—————-速度为0;
2.5ms—————-反向最大转速;
拿到那种360度旋转电机的时候,首先就是调零,接VCC、GND,然后用波形发生器产生一个周期20MS、高电平1.5MS的波形去调零。(经验之谈,不知道对不对)
以上说的不一定都对,各位看官不吝赐教!
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/130034.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...