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 超聲波感測器。這些感測器返回一個脈衝,其長度等於聲波到達物體並反彈所需的時間。如果我們知道聲速和時間長度,我們可以用一些簡單的算術來計算物體的距離。