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); } }
全站熱搜
留言列表