總網頁瀏覽量

2014年8月3日 星期日

Raspberry Pi Software PWM Control = Raspberry Pi (樹莓派) + MotoPiduino + DC Motor

這個實驗主要利用 RPi.GPIO 的函數庫來實現 PWM 功能, 也就是用軟體模擬 PWM功能, Raspberry Pi只有一 IO 腳位有硬體 PWM, 如需要多個PWM功能可以利用 Softrware PWM.

一.  使用材料 : 
1.      MotoPiduino
2.      Raspberry Pi
3.      5V power
4.      5V DC Motor





二. 程式: 編寫Python 程式 motor_pwm.py 

import RPi.GPIO as GPIO
from time import sleep

GPIO.setmode(GPIO.BOARD)

GPIO.setup(11, GPIO.OUT)
GPIO.setup(12, GPIO.OUT)
GPIO.setup(13, GPIO.OUT)
GPIO.setup(15, GPIO.OUT)

p11=GPIO.PWM(11, 100)
p12=GPIO.PWM(12, 100)

p11.start(0)
p12.start(0)

try:
    while True:
        for i in range(0, 101):
          p11.ChangeDutyCycle(i)
          p12.ChangeDutyCycle(i)
          GPIO.output(13, False)
          GPIO.output(15, False)
          sleep(0.2)
        for i in range(100,-1,-1):
          p11.ChangeDutyCycle(i)
          p12.ChangeDutyCycle(i)
          GPIO.output(13, False)
          GPIO.output(15, False)
          sleep(0.2)

except KeyboardInterrupt:
        p11.stop()
        p12.stop()
        GPIO.output(11, 0)
        GPIO.output(12, 0)
        GPIO.output(13, 0)
        GPIO.output(15, 0)
        GPIO.cleanup()
          

三. 執行:
 $ sudo python motor_pwm.py


      Information : http://www.motoduino.com




4 則留言:

  1. 您好,想請問步進馬達問題,在七月份的文章中有留言,謝謝

    回覆刪除
  2. 您好,請問執行您的程式時,會出現attributeError:'module' object has no attribute "PWM",問題可能會出在那裏?謝謝

    回覆刪除
  3. 請問ChangeDutyCycle(i)這個指令是不是要安裝函式庫,沒這個似乎無法行,請問要怎麼裝?

    回覆刪除