PCA9685暫存器用法和通訊(二)

2021-10-08 21:23:34 字數 1031 閱讀 1381

今天記錄一下使用wiringpi庫操作pca9685控制舵機的方法。

首先抄襲一下舵機角度和占空比的關係:

乙個週期為20ms的脈衝裡面高電平持續的時間決定了舵機轉動的角度,180度舵機對應關係如下:0.5ms--0度,1ms--45度,1.5ms--90度,2ms--135度,2.5ms--180度。

於是我封裝了兩個函式pca9685_init和pca_set_angle。

pca9685_init用來設定pwm頻率。

pca_set_angle(int channel_id,int srv_type, int angle)函式的三個引數說明:

channel_id是通道id,pca9685有16個通道,channel_id的取值從0~15。

srv_type舵機型別,舵機的最大角度,取值一般無非90,180,270,360。

angle就是要設定的角度。

那如果你的舵機接在0通道,舵機是180度的,要裝到90度,就是pca_set_angle(0,180,90)了。

#include #include #include #include #define pca9685_addr 0x40 //i2c匯流排位址

#define mode1_addr 0x00 //mode1暫存器位址

#define mode2_addr 0x01 //mode2暫存器位址

#define svo_type 180 //定義舵機最大旋轉角度

#define ai 1 //定義是否開啟自增功能

#define fr 50 //定義pwm頻率

#define pre_scale_reg 0xfe

int fd;

void pca9685_init(int ai, int freq)

void pca_set_angle(int channel_id,int srv_type, int angle)

;int main(void)

樹莓派pca9685舵機驅動板python驅動

以下為python源程式 輸入通道與角度。即可選通並使該通道的舵機轉動到相應的角度 from future import division 匯入 future 檔案的 division 功能函式 模組 變數名.新的板庫函式 import time import the pca9685 module....

樹莓派之PCA9685驅動無刷電機

關於i2c驅動,這裡用的是wiringpi做進一步封裝,i2c驅動的函式如下 include int checki2cdevicei ist unsigned char devaddr bool writebyte int fd,unsigned char regaddr,unsigned char...

STM32F407配置pca9685驅動

pca9685是16路12位pwm訊號發生器,可用於控制舵機 led 電機等裝置,i2c通訊,節省主機資源。在 上隨處可見,arduino用它非常方便,不過stm32要想使用它必須要寫好驅動才行,本文簡述如何配置其驅動以及一些需要注意的地方。應用與除錯 當然對於老手,看datasheet是最好的選擇...