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 1
与 PULSOUT 12, 500
占用相同的时间。
与发送 PWM 信号类似,我们也可以从外部设备读取 PWM 信号。我们必须指定我们正在读取的端口,并且我们还必须提供一个变量来接收脉冲的长度。例如,如果我们想读取端口 5 上的 PWM 脉冲,我们可以写
MyByte VAR Byte PULSIN 5, MyByte
与 PULSOUT 一样,时间单位是 2 μs。
一种常见的使用这种 PWM 输入的设备是 Parallax 超声波传感器。这些传感器返回一个脉冲,其长度等于声波到达物体并反弹所需的时间。如果我们知道声速和时间长度,我们可以用一些简单的算术来计算物体的距离。