close

使用Raspberry Pi 的GPIO library 去產生PWM,進而控制DC 直流馬達的工作電壓及速度,是我們經常拿來討論的方法及議題,使用方法很簡單
我們只要使用二個指令即可以設定工作頻率及工作週期,利用這二個指令就可以改變及控制PWM GPIO的工作電壓進而達到控制直流馬達速度的目地。
至於想了解PWM及工作原理及說明設定可以利用Google或參考下面的網站software PWM – How to use it說明,這不是本篇文章要說明的重點。
本篇要思考的重點是要如何設定PWM的工作頻率,很多文章都提到首先先利用這個指令設定頻率GPIO.PWM(GPIO接脚,頻率設定),但問題是我們要設定多少的工作頻率才可以,什麼是最小值和最大值,這個值的大小是否會改變PWM的輸出電壓。

  1. p = GPIO.PWM(2550)    # create an object p for PWM on port 25 at 50 Hertz  
  2.                         # you can have more than one of these, but they need  
  3.                         # different names for each port   
  4.                         # e.g. p1, p2, motor, servo1 etc.  
  5.   
  6. p.start(50)             # start the PWM on 50 percent duty cycle  
  7.                         # duty cycle value can be 0.0 to 100.0%, floats are OK  
  8. p.ChangeDutyCycle(90)   # change the duty cycle to 90%  
  9.   
  10. p.ChangeFrequency(100)  # change the frequency to 100 Hz (floats also work)  
  11.                         # e.g. 100.5, 5.2  
  12.   
  13. p.stop()                # stop the PWM output  
  14.   

我尋找很多資料總是找不到答案,所以才會想要測試看看,我的問題是
(1)PWM頻率的最大值
(2)PWM頻率是否會影響輸出電壓
(3)PWM頻率如何影響散熱

問題一: PWM頻率的最大值
這個問題終於了答案,而且還真是令人想不到的測試結果。這個問題關連到你的硬體設備工作
頻率及使用的語言及library。
當使用Raspberry Pi 時GPIO接脚的反應速度可以多快,

這篇文章是利用Raspberry Pi 來產生方波頻率Benchmarking Raspberry Pi GPIO Speed,其測試結果如下表所示
 

LANGUAGE LIBRARY TESTED / VERSION SQUARE WAVE
Shell /proc/mem access 2015-02-14 2.8 kHz
Shell / gpio utility WiringPi gpio utility 2015-02-15 / 2.25 40 Hz
Python RPi.GPIO 2015-02-15 / 0.5.10 70 kHz
Python wiringpi2 bindings 2015-02-15 / latest github 28 kHz
Ruby wiringpi bindings 2015-02-15 / latest gem (1.1.0) 21 kHz
C Native library 2015-02-15 / latest RaspPi wiki code 22 MHz
C BCM 2835 2015-02-15 / 1.38 5.4 MHz
C wiringPi 2015-02-15 / 2.25 4.1 – 4.6 MHz
Perl BCM 2835 2015-02-15 / 1.9 48 kHz

所以當我們利用Python及RPi.GPIO去產生PWM時最高頻率可以設定至70KHZ,理論上工作頻率愈高,輸出的電壓會愈高但CPU會愈熱。
 

問題二:PWM頻率是否會影響輸出電壓

目前我正在測試,如果有數據資料再來討論結果。

 

 

 

 

 

參考資料:
(1)http://raspi.tv/2013/rpi-gpio-0-5-2a-now-has-software-pwm-how-to-use-it
(2)http://codeandlife.com/2012/07/03/benchmarking-raspberry-pi-gpio-speed/

 

 

 

arrow
arrow

    stanley 發表在 痞客邦 留言(0) 人氣()