电机转动传感器用于测量电机的转动量。转动传感器内置在中型电机、大型电机和 NXT 电机中。这些电机中的传感器可以检测旋转量(以度为单位)。电机转动一整圈是旋转 360 度。
还可以使用电机转动传感器查明电机当前运行所处的功率级别。
提示和技巧
电机转动传感器与连接到 EV3 程序块上的电机端口(A、B、C 或 D)的电机一起使用。电机转动传感器不能与 EV3 传感器端口(1、2、3 和 4)一起使用。
电机转动数据
电机转动传感器可以提供以下数据:
数据 | 类型 | 备注 |
---|---|---|
度数 | 数字 | 以度为单位的旋转量 |
圈数 | 数字 | 以圈为单位表示的旋转量(度数/360,采用小数形式) |
当前功率 | 数字 | 如果电机正在运行,则为当前电机功率级别 (1-100),如果电机停止,则为 0 |
重置电机转动传感器
电机转动传感器可以在程序中的任何位置重置为零。传感器随后测量相对于重置位置的总旋转量。要重置电机转动传感器,请使用“重置”模式的电机旋转模块。
提示和技巧
如果测量从未重置的电机转动传感器,则会获取自程序开始以来电机转动的总旋转量。
电机旋转方向和总旋转量
电机向前旋转会生成正度数或圈数,而向后旋转会生成负数。始终以自传感器上次重置以来的总向前旋转量形式来测量旋转。会从任何累积的向前旋转中减去向后旋转。
下表显示分几个步骤进行的电机动作的示例,以及在每个步骤之后测量电机旋转的结果。
步骤 | 动作 | 当时的电机旋转为: |
---|---|---|
1 | 程序开始,电机尚未转动 | 0 度 |
2 | 电机向前转动一整圈(360 度) | 360 度 |
3 | 电机再次向前转动一整圈 | 720 度 |
4 | 电机向前转动 60 度 | 780 度 |
5 | 电机向后转动 30 度 | 750 度 |
6 | 电机重置 | 0 度 |
7 | 电机向后转动 100 度 | -100 度 |
8 | 电机向后转动 60 度 | -160 度 |
9 | 电机向前转动 360 度 | 200 度 |
电机转动传感器使用示例
下面演示了有关在程序中如何使用电机转动传感器的一些示例。
示例 1:在推动机器人时发出声音
此程序在用手推动机器人以使轮子移动一点时,使机器人发出声音。此程序使用“电机旋转 - 更改 - 度数”模式的等待模块等待电机 C 的转动传感器在任一方向上更改 5 度。随后声音模块发出声音。
示例 2:以某种模式驱动特定距离
此程序使机器人直线驱动 2 圈,然后以之字形模式驱动总共 6.5 圈。它通过先移动一个轮子,然后移动另一个轮子,从而以之字形模式驱动。之字形模式在循环中重复,直至电机 B 驱动了总共 6.5 圈。此程序使用“电机旋转 - 圈数”模式的循环在电机 B 的转动传感器测量了总共 6.5 圈时停止循环。为了使这 6.5 圈仅测量之字形驱动,而不包括开始时的 2 个直行圈数,在使用“重置”模式的电机旋转模块进行之字形驱动之前,电机 B 的转动传感器会重置为零。
示例 3:速度控制表盘
此程序使连接到端口 C 的电机充当连接到端口 B 的电机的速度控制表盘。用手向前和向后转动 C 电机可控制 B 电机的速度。此程序使用“测量 - 度数”模式的电机旋转模块测量电机 C 转动的度数。此结果用于大型电机模块的“功率”输入,还会使用显示模块进行显示。该过程在循环中重复执行,以便持续更新速度。
提示和技巧
如果大型电机模块的“功率”输入大于 100,则会使用 100% 功率。
电机旋转模块和模式
下表显示可以与电机转动传感器一起使用的编程模块和模式。
模块 | 模式 | 用途 |
---|---|---|
等待 | 电机旋转 - 比较 | 等待转动传感器达到特定值(度数、圈数或当前功率)。 |
等待 | 电机旋转 - 更改 | 等待转动传感器按特定量更改(度数、圈数或当前功率)。 |
循环 | 电机旋转 | 重复模块序列,直至转动传感器达到特定值(度数、圈数或当前功率)。 |
切换 | 电机旋转 - 比较 | 根据转动传感器(度数、圈数或当前功率)在两个模块序列之间进行选择。 |
电机旋转 | 测量 | 读取转动传感器(度数、圈数或当前功率),并通过数字数据线获取结果。 |
电机旋转 | 比较 | 将转动传感器(度数、圈数或当前功率)与阈值进行比较,并通过逻辑数据线获取结果。 |
电机旋转 | 重置 | 将转动传感器重置为零。 |
提示和技巧
电机转动传感器还在以下动作模块和模式内部使用:
模块 | 模式 | 用途 |
---|---|---|
中型电机、 大型电机 | 开启指定度数、 开启指定圈数 | 按特定度数或圈数转动电机。 |
移动转向、 移动槽 | 开启指定度数、 开启指定圈数 | 通过按特定度数或圈数使用两个大型电机来进行驱动。 |