概述
用Arduino类库驱动舵机并不是一件难事,如果需要驱动很多电机,就需要要占用更多的引脚,也会影响到Arduino的处理能力。专门的舵机驱动板很好的解决了这个问题。 此舵机驱动板使用PCA9685芯片,是16通道12bit
驱动板与Arduino连接 此PWM驱动板采用I2C方式,所以只需要4根线就可以连接到Arduino设备: “Classic” Arduino 引脚方式:
老版Mega 引脚方式:
R3 and later Arduino 引脚方式(Uno, Mega & (这些板子都有专用的SDA 和 SCL 引脚)
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 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 pwm1 = Adafruit_PWMServoDriver pwm2 =
void setup() { Serial.begin(9600); Serial.println(“16 channel
pwm1.begin(); pwm1.setPWMFreq(1600); //
pwm2.begin(); pwm2.setPWMFreq(1600); // } |
|