PWM

 
語法

        PWM Pin, Duty, Cycles

 

操作

        將類比訊號以PWM訊號輸出。

 

  • Pin 常數或變數值(0-23),用來指定產生PWM的引腳。初始時這個引腳會被設成輸出模式,當指令完成時會設為輸入模式。對一個24引腳 BASIC commander®,這個引腳值的範圍為 0~15
  • Duty 常數或變數值 (0~255),用來定義輸出波形的工作週期(佔空比)
  • Cycles 定義PWM輸出產生所需的週期數(大約每個循環1.15 ms) 實際上也就是定義PWM輸出運作的時間。Cycles0將不會產生PWM輸出。它的值可以是常數,變數或是一個表示式而且必須在範圍0-255之間。

 

說明

        PWM指令允許BASIC Commander®在它的數位引腳上產生一個類似的伏特電壓輸出。當你將輸出引腳設為high時,引腳的伏特電壓會接近5伏特,如果將輸出引腳設為low,引腳的伏特電壓會接近0伏特。 如果你將引腳值在high low 間迅速地變換,那你將會得到一個在這之間的伏特電壓。你所得到的實際伏特電壓值是取決於由highlow的時間比例,稱之為功率週期。舉例來說,如果功率為150(150/255) *5V = 2.94VPWM指令輸出一串列的脈衝,平均伏特電壓值為2.94V。功率週期是1.15ms,如下圖。

        下列低通路電阻/電容電路系統在指令完成之後會濾出脈衝和保持類似物電壓。 類似物電壓的保留取決於外接電路從那裡取走多少電流,包括電容電流流失。 為了保留電壓,週期性的執行PWM指令去幫電阻/電容電路充電是必要的。


        一開始要將電容充到希望的電壓需要時間。你可以使用姆指方程式的規則:充電時間 = 5*R*C,去估算充電最少所需的週期數。如下圖描述:

 

        充電時間 = 5 * 10 x 103 * 1 x 10-6 = 50 x 10-3 秒,或 50 ms

 

        對於BASIC Commander®,每個週期約1.15 ms,因此電容充電至少需要44個週期。 假設使用引腳 0,則命令會像:

PWM 0, 150, 44      '引腳 0充電到 2.94 V

 
 範例
 
Sub Main()

    Dim f As Float
   
Dim duty As Byte
   
Dim b As Byte   

START:
   
Debugin "Enter desired voltage(0~5V) : ", f, CR
   
   
If f<0 Or f>5 Then
       
Debug "Invalid value.", CR
       
Goto START
   
Else
        f = f *
255 / 5
        duty =
float2byte(f)
       
Debug "duty=", duty, CR
       
       
For b=1 To 100      ' Hold the voltage for 5 seconds
            PWM(0, duty, 44)
       
Next b 
   
End If   
   
   
Goto START
End Sub