1. 程式人生 > >(十三)樹莓派3B+ wiringPi庫的使用--軟體PWM

(十三)樹莓派3B+ wiringPi庫的使用--軟體PWM

程式碼

#include <wiringPi.h>
#include <softPwm.h>

#define pwm_pin 1    //定義PWM引腳 GPIO.1

int main (void)
{
    wiringPiSetup ();               // wiringPi庫初始化
    softPwmCreate (pwm_pin, 0, 100) ;   // 設定GPIO.1為PWM輸出    
    int val = 0;
    while(1)
    {
      val ++;
      if(val >= 100){
        val = 0
; } softPwmWrite(pwm_pin,val); // 輸出佔空比為val/100的pwm波 delay(3); // 延時3毫秒 } return 0 ; }

怎麼使用

1.引入標頭檔案

#include <softPwm.h>

2.初始化埠

int softPwmCreate (int pin, int initialValue, int pwmRange) ;

引數pin,樹莓派的任何一個GPIO引腳都可以被設定成軟體PWM的輸出引腳。 引數initialValue,PWM初始值,這值得範圍在0~100之間。 引數pwmRange

,PWM輸出範圍,這值得範圍在0~100之間。 這裡寫圖片描述 3.設定輸出值

void softPwmWrite (int pin, int value) ;

給作為PWM輸出的引腳設定輸出值,這個值在pwmRange範圍之內。 wiringPi庫提供的軟體PWM就這個兩個方法,但是有些是需要注意的。

注意點

這裡寫圖片描述

  • PWM輸出的每一個“週期”都需要10毫秒,預設範圍值為100,因此,嘗試每秒改變PWM值超過100次將是徒勞的。(也就是說軟體PWM的固定輸出頻率是100HZ,這個對於驅動一般的電機是足夠了) 您需要保持您的程式執行,以維護PWM輸出!
  • 在軟PWM模式下啟用的每個引腳使用大約0.5%的CPU。
  • 目前還沒有辦法禁用軟PWM上的一個引腳,而程式在執行中。
  • 您需要保持您的程式執行,以維護PWM輸出!