跳轉到內容

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

華夏公益教科書