用Arduino类库驱动舵机并不是一件难事,如果需要驱动很多电机,就需要要占用更多的引脚,也会影响到Arduino的处理能力。专门的舵机驱动板很好的解决了这个问题。
此舵机驱动板使用PCA9685芯片,是16通道12bi tPWM舵机驱动,用12个弓|脚通过I2C就可以驱动16个舵机。不仅如此,你还可以通过级联的方式最多级联62个驱动板,总共可以驱动992个舵机!
供电部分
大多数的舵机设计电压都是在5~6V,尤其在多个舵机同时运行时,跟需要有大功率的电源供电。如果直接使用Arduino 5V弓|脚直接为舵机供电,会出现一些难以预测的问题,所以我们建议你能有个合适的外部电源为驱动板供电。
连接舵机
大多数舵机都是使用标准3线母插头连接,只要按照对应的引脚插入驱动板就可以了。(地线一般为黑色或棕色、信号线一般为黄色或白色)
一个驱动板上最多可以添加16个舵机。
驱动板级联
多驱动板级联(最多可级联62个)为你提供更多的扩展性,连接方式如下图所示
为驱动板分配地址
级联的每个驱动板都需要有一个唯一的访问地址。每个驱动板的初始I2C地址是0 X 40,可以通过右上角的跳线修改I2C地址。用焊锡将一个跳线连上就表示一个二进制数字“1”。
Address = C X 40
Board 0:
Offset = binary 00000 (默认)
Board 1: Address= 0x41Offset= binary 00001(如上图,接上A0)
Board 2: Address= 0x42 Offset= binary 00010 (接上A1)
Board 3: Address= C x43 Offset= binary 00011(接上AO和A1)
Board 4: Address= 0x44 Offset= binary 00100 (接上A2)
以此类推
代码示例:
#include 《Wire.h》
#include
《Adafrui t_PWMServoDriver.h》
Adafrui t_PWMServoDriver pwm1二
Adafrui t_PWMServoDriver (0 X 40);
Adafruit_PWMServoDriver pwm2 =
Adafrui t_PMServoDriver (0 X 41);
void setup() {
Serial.begin(9600);
Serial.println(“16 chanel
PWM test!”);
pwm1.begin();
//
pwm1.setPWMFreq(1600);
Thi s is the maximum PWM[ frequency
pwm2.begi n();
pwm2.setPWMFreq(1600); //
Thi s is the maximum PWM[ frequency
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)