PCA9685是採用I2C通訊介面的16路PWM產生器,解析度為12bit,開關頻率為24 Hz到1526 Hz。

雖然具備16路的PWM,但16路的頻率無法單獨設置,只能調整各路的duty cycle,

所以比較適合應用在固定頻率但需調整PWM占空比的LED亮度調整或採用多軸小型伺服馬達的機器人。

Arduino Libary: PCA9685

範例程式: servo

 

函式說明

範例預設地址為0x40 (可以變更FaBoPWM_PCA9685.h 內的#define PCA9685_SLAVE_ADDRESS 0x40)

faboPWM.begin(): 確認裝置是否正常連接

faboPWM.set_hz(frequency): 設定PWM頻率

faboPWM.init(duty) : 初始化各路PWM的duty

faboPWM.set_chanel_value(chanel,duty): 設定各路的PWM Duty cucle 0-4095

 

程式碼

#include "FaBoPWM_PCA9685.h"

FaBoPWM faboPWM;
int pos = 0;
int MAX_VALUE = 600;
int MIN_VALUE = 300;

void setup() {
  
  Serial.begin(115200);
  if(faboPWM.begin()) {
    Serial.println("Find PCA9685");
    faboPWM.init(300);
  }
  faboPWM.set_hz(50);
}

void loop() {
  for (pos = MIN_VALUE; pos <= MAX_VALUE; pos += 1) { 
    faboPWM.set_channel_value(4, pos); 
    delay(15);                      
  }
  for (pos = 600; MAX_VALUE >= MIN_VALUE; pos -= 1) { 
    faboPWM.set_channel_value(4, pos);              
    delay(15);      
  }
}
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 門外漢 的頭像
    門外漢

    門外漢的筆記

    門外漢 發表在 痞客邦 留言(0) 人氣()