2011年5月9日 星期一

用 Proteus 的虛擬示波器觀察 PWM 波形

Proteus 的虛擬示波器是一個觀察訊號的方便的工具,底下將做一個簡單的示範,用 Proteus 的虛擬示波器來觀察 Arduino 產生的 PWM 訊號。如果你對 PWM 不熟,請先看這篇教學

範例程式

底下是一支產生 PWM 訊號的程式(pwm.pde)。程式邏輯很單純,只是在 Arduino pin 5 上產生 PWM 訊號,而且每隔 5 秒改變一次 PWM 的 duty cycle,從 0%, 25%, 50%, 75% 一直到 100%,然後再變回 0%。

接下來是設定 Proteus 以觀察 PWM 訊號。方便起見,我將在 Barebone Arduino 的基礎上製作一個 Proteus 設計檔。

Proteus 虛擬示波器

首先,點選工具列上的 "Virtual Intruments Mode" 並選擇 OSCILLOSCOPE:

image

然後在設計畫面上放一個示波器,如下圖:

image

Proteus 的示波器可以同時觀察 4 個頻道(頻道名稱為 A 到 D),我們現在只用到 B 這個頻道,B 頻道上接的是 Arduino 的 pin 5。

OK,這樣就設定完成了。接著載入 Arduino 的 HEX 檔,就可以觀察 PWM 訊號了。

底下是執行結果:

image
▲ duty cycle = 0%

image
▲ duty cycle = 25%

image
▲ duty cycle = 50%

image
▲ duty cycle = 75%

image
▲ duty cycle = 100%

除了看 PWM 波形外,Proteus 的虛擬示波器還有 Cursor (游標)功能,可以讓我們計算 Pulse 的寬度:

image
▲ duty cycle 為 25% 時,Pulse 寬度大約是 256 uS

延伸閱讀

2 意見:

GCY 提到...

拿來調試servo應該很不錯GOOD!

coopermaa 提到...

這樣示波器就可以暫時收起來,不用跟我的電腦搶桌面的空間了。哈~