pca9685的舵机控制

舵机角度

一个周期为20ms的脉冲里面高电平持续的时间决定了舵机转动的角度,180度舵机对应关系如下:0.5ms--0度,1ms--45度,1.5ms--90度,2ms--135度,2.5ms--180度。

 

16路舵机驱动控制模块pca9685pw通过IIC(内置PWM驱动和一个时钟)协议可以控制16个舵机

 

pca9685设备地址

其地址的分配是通过模块右上方的短接焊盘来确定的,从A0-A5表示地址的最低位到最高位,也就是最多可级联2^5=32个模块,地址为: 1+A5+A4+A3+A2+A1+A0+rw。如果不用短接的话Ax=0;短接的话Ax=1;rw为写的话rw=0;rw为读的话rw=1;所以写入数据不做短接则地址应该为1000 0000 =0x80

 

 

IIC通信

SCL接PH4,SDA接PH5,VCC接3.3V,GND接,V+单纯只是供电,在驱动大功率舵机时不接,但是外接电源的两个端口要接上正负极,否则无法供电。

pca9685的舵机控制_第1张图片

其中每个输出管脚拥有4个寄存器,每隔寄存器存储8位2进制数据,每个输出管脚需要存储上升时间和下降时间

void setPWM(uint num, uint on, uint off)//其中开始一般设置为0,只需要取下降时间就行

该函数为设置PWM波的占空比,一般都以4096为一个PWM波周期

pca9685的舵机控制_第2张图片

MODE1寄存器用来重设板子,PRE_SCALE用来设置控制周期的寄存器,要在进入睡眠后修改时钟周期寄存器

void setPWMFreq(float freq)

pca9685的舵机控制_第3张图片

设置角度

60度=0.5ms+(60/180)*(2.5ms-0.5ms)=1.1666ms

利用占空比=1.1666ms/20ms=off/4096,off=239,50hz对应周期20ms

实物连接图

pca9685的舵机控制_第4张图片

pca9685分为控制电和驱动电两个电源,其中控制电接3.3V,一般由单片机开发板提供,同时SCL和SDA和单片机的数据信号和时钟信号相连;而驱动电为中间绿色的装置,需接5v电压

pca9685的舵机控制_第5张图片

这里驱动电我使用了网购的另一个5v直流电源

你可能感兴趣的:(硬件,pca9685,舵机,IIC)