16路PWM舵机驱动板(PCA9685)的使用说明

概述

 

用Arduino类库驱动舵机并不是一件难事,如果需要驱动很多电机,就需要要占用更多的引脚,也会影响到Arduino的处理能力。专门的舵机驱动板很好的解决了这个问题。

此舵机驱动板使用PCA9685芯片,是16通道12bit PWM舵机驱动,用2个引脚通过I2C就可以驱动16个舵机。不仅如此,你还可以通过级联的方式最多级联62个驱动板,总共可以驱动992个舵机!

驱动板与Arduino连接

此PWM驱动板采用I2C方式,所以只需要4根线就可以连接到Arduino设备:

“Classic” Arduino 引脚方式:

  • +5v -> VCC
  • GND -> GND
  • Analog 4 -> SDA
  • Analog 5 -> SCL

老版Mega 引脚方式:

  • +5v -> VCC
  • GND -> GND
  • Digital 20 -> SDA
  • Digital 21 -> SCL

R3 and later Arduino 引脚方式(Uno, Mega &
Leonardo):

(这些板子都有专用的SDA 和 SCL 引脚)

  • +5v -> VCC
  • GND -> GND
  • SDA -> SDA
  • SCL -> SCL

驱动板与树莓派连接

  • GND -> RPi GND
  • SCL -> RPi SCL1
  • SDA -> RPi SDA1
  • VCC -> RPi 3.3V
  • V+ -> RPi 5V

 

VCC引脚只是为芯片供电,如果要连接舵机或者LED灯,就使用V+引脚供电,V+引脚支持3.3~6V的电源(芯片的安全电压时5V)。 我们建议通过电源接线柱外接电源供电。

供电部分

大多数的舵机设计电压都是在5~6V,尤其在多个舵机同时运行时,跟需要有大功率的电源供电。如果直接使用Arduino 5V引脚直接为舵机供电,会出现一些难以预测的问题,所以我们建议你能有个合适的外部电源为驱动板供电。

连接舵机

大多数舵机都是使用标准3线母插头连接,只要按照对应的引脚插入驱动板就可以了。(地线一般为黑色或棕色、信号线一般为黄色或白色)

一个驱动板上最多可以添加16个舵机。

驱动板级联

多驱动板级联 (最多可级联62个)为你提供更大的扩展性,连接方式如下图所示。

为驱动板分配地址

级联的每个驱动板都需要有一个唯一的访问地址。每个驱动板的初始I2C地址是0×40,可以通过右上角的跳线修改I2C地址。用焊锡将一个跳线连上就表示一个二进制数字“1”。

Board 0:  Address = 0×40 Offset = binary 00000 (默认)

Board 1:  Address = 0×41  Offset = binary 00001 (如上图,接上A0)

Board 2:  Address = 0×42  Offset = binary 00010 (接上A1)

Board 3:  Address = 0×43  Offset = binary 00011 (接上A0和A1)

Board 4:  Address = 0×44  Offset = binary 00100 (接上A2)

以此类推。。。

 

代码示例:

#include <Wire.h>

#include <Adafruit_PWMServoDriver.h>



Adafruit_PWMServoDriver pwm1 = Adafruit_PWMServoDriver(0×40);

Adafruit_PWMServoDriver pwm2 = Adafruit_PWMServoDriver(0×41);



void setup() {

  Serial.begin(9600);

  Serial.println(“16 channel PWM test!”);

  pwm1.begin();

  pwm1.setPWMFreq(1600);  //This is the maximum PWM frequency

  pwm2.begin();

  pwm2.setPWMFreq(1600);  //This is the maximum PWM frequency

}

Arduino驱动库和舵机示例下载:点击下载

树莓派驱动和示例代码下载:点击下载