跳转到内容

PBASIC 编程/PULSIN 和 PULSOUT

来自维基教科书,开放书籍,为开放的世界

脉冲宽度调制

[编辑 | 编辑源代码]

脉冲宽度调制 (PWM) 是使用电信号的长度来表示一个值,而不是一个大的位模式。例如,为了显示数字 12,我们可以发送一个 +5V 脉冲持续 12 毫秒 (ms),而不是发送二进制数 1100。PWM 最常见的用途是数字伺服电机,尤其是机器人。然而,其他外部设备也使用 PWM 通信。为了发送一个 PWM 信号,而不是一个普通的二进制信号,我们使用 PULSIN 和 PULSOUT 命令。

时钟速度

[编辑 | 编辑源代码]

PULSIN 和 PULSOUT 的时间单位是 2 微秒 (μs)。微秒是 10-6 秒。例如,如果我们发送一个值为 25 的 PULSOUT,脉冲的长度将是

我们进行上述从微秒到毫秒的转换的原因是,许多设备以毫秒为单位显示其要求。程序员始终要能够在不同的单位之间进行转换。

要发送一个 PWM 信号,您需要指定端口和时间长度。例如,要发送一个在端口 10 上持续 4 微秒的脉冲,我们可以写

PULSOUT 10, 4

脉冲之间的长度

[编辑 | 编辑源代码]

我们之前看到过 PAUSE 函数,它可以用来延迟下一个命令的操作。当使用 PAUSE 在 PWM 脉冲之间插入延迟时,请记住它使用毫秒,而不是微秒 (μs)。请记住,PAUSE 1PULSOUT 12, 500 占用相同的时间。

与发送 PWM 信号类似,我们也可以从外部设备读取 PWM 信号。我们必须指定我们正在读取的端口,并且我们还必须提供一个变量来接收脉冲的长度。例如,如果我们想读取端口 5 上的 PWM 脉冲,我们可以写

MyByte VAR Byte
PULSIN 5, MyByte

与 PULSOUT 一样,时间单位是 2 μs。

一种常见的使用这种 PWM 输入的设备是 Parallax 超声波传感器。这些传感器返回一个脉冲,其长度等于声波到达物体并反弹所需的时间。如果我们知道声速和时间长度,我们可以用一些简单的算术来计算物体的距离。

华夏公益教科书