180和360舵机的学习与分辨

2019-07-282.7万
AI 快速预览详细 收起
本文介绍了180度舵机和360度舵机的驱动原理、控制方式及应用场景。180度舵机通过PWM信号控制角度,适用于需要精确角度控制的场景,如机器人关节。360度舵机通过PWM信号控制速度,适用于需要连续旋转的场景。文章还提供了具体的示例程序,帮助读者动手实践并观察两者的区别。


                                                       180和360舵机的学习与分辨


           在进行舵机选型的时候,我们经常会疑惑究竟180和360舵机有什么区别,是不是180舵机可以转180度而360舵机可以转360度呢?其实并不仅仅是这样的,这两款舵机还有着其他不一样的地方。下面我将为大家慢慢展示。
            介绍360舵机驱动方式前,我们先学习一般的舵机基本控制原理。下面先用180度舵机进行驱动原理的举例。
              180和360舵机的学习与分辨图1
                           180和360舵机照片

一、180度舵机驱动原理:

           1.舵机的结构与控制原理

             180和360舵机的学习与分辨图2
           我们可以很明显的看出,舵机和步进电机的动力是有着很大区别的,舵机的驱动力来自——直流电机,通过变速齿轮的传动和变速,将动力传输到输出轴,同时,舵机内部都设有角度传感器和控制电路板,用来参与舵机的转动角度的控制和信号的反馈检测工作。

           2.三根输入线的识别与实物连线介绍

           180和360舵机的学习与分辨图3                 180和360舵机的学习与分辨图4
           
           实物连线介绍,分别Vcc(红色线),Gnd(灰色线),Signal (橙色线)。若遇到有的舵机三根全是黑色的线,记得查看使用说明。

           3.舵机的工作原理

           舵机的控制信号,一般是脉宽调制(PWM)信号,如下图,直观反映了PWM信号和舵机转动角度的关系,你也可以简单的理解为,通过给舵机通电的时间控制,结合角度传感器的反馈信号检测和控制,实现了舵机的精确角度控制。
           180和360舵机的学习与分辨图5

           舵机的控制信号周期为20MS的脉宽调制信号(PWM),占空比0.5~2.5ms 的正脉冲宽度和舵机的转角-90°~90°相对应,呈线型变化。也就是说,给舵机提供一定的脉宽,他的输出轴就会保持一定的对应角度,无论外接转矩怎么改变,知道给他提供另外一个脉冲信号,他才会改变输出角度到新的对应的位置上。
           舵机内部有一个基准电路,产生周期为20MS,宽度为1.5MS的脉冲信号,有一个比较器,将外加信号与基准信号相比较,判断出方向和大小,从而产生电机的转动信号。
           舵机是一种位置伺服驱动器,转动范围不能超过180度,适用于那些需要不断变化并可以保持的驱动器中,比喻说机器人的关节、飞机的多面等。

.360度舵机驱动原理:

           360舵机的驱动方式和以上介绍的180度舵机的驱动方式差不多。
           特别注意:360度舵机与一般舵机的区别是:给一般舵机一个PWM信号,舵机会转到一个特定角度,而给360度舵机一个PWM信号,舵机会以一个特定的速度转动,类似与电机。但与电机不同的是,360舵机是闭环控制,速度控制稳定。
           PWM信号与360舵机转速的关系:
           
           0.5ms----------------正向最大转速;
           1.5ms----------------速度为0;
           2.5ms----------------反向最大转速;
           180度舵机比较,需要明确的是360度舵机无法像180度舵机一样控制角度,它只能控制方向和速度。

三、360度舵机驱动程序示例:

           学习360度舵机驱动程序前,我们要做的准备工作:首先了解Servo类:

           servo类下有以下成员函数
           attach(); //连接舵机,设定舵机的接口。2~13接口可利用。
           write(); //角度控制,用于设定舵机旋转角度的语句,可设定的角度范围是0°到180°。这条语句是直接写角度,舵机的每个转动到了一个位置都有相应的角度。舵机通过控制PWM的宽度来决定转的角度。
           writeMicroseconds(); //用于设定舵机旋转角度的语句,直接用微秒作为参数。(注意。360度舵机不能进行角度控制,它只能控制方向和速度。)
           read();    //读上一次舵机转动角度,用于读取舵机角度的语句,可理解为读取最后一条write()命令中的值。
           attached(); //判断舵机参数是否已发送到舵机所在接口。
           detach();  //断开舵机连接
           准备工作做完:直接写程序:
           下面程序的功能是:通过按钮模块来控制360度舵机的运动。具体内容是按一下按钮,360度舵机正方向运动4s。
   
           程序:
           180和360舵机的学习与分辨图6

           SVG连线图:
           180和360舵机的学习与分辨图7

四、挑战一下:
           做一个控制180舵机运动的程序,观察180和360有些什么区别。





创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(3)
gada888
gada888
有用,记笔记
陸
小白问个问题,360°舵机能当作编码电机来用吗?我能通过控制360°舵机的通电时间来让小车走直线吗?
hellonhy
hellonhy
作者
回复hellonhy
更新一下:
说错了,360电机就是伺服电机。可以一直转,我才是小白 可以走直线
hellonhy
hellonhy
作者
回复
它可以相当于是一个自带电机驱动的电机,但又完全不是一个正常的电机,正常电机可以转很多圈。360舵机只能转360°,也就是一圈,所以,怎么去驱动小车呢。
DFry6Vdy1Xr
DFry6Vdy1Xr
很实用
- 没有更多了 -