一、概述
用Arduino类库驱动舵机并不是一件难事,如果需要驱动很多电机,就需要要占用更多的引脚,也会影响到Arduino的处理能力。专门的舵机驱动板很好的解决了这个问题。
此舵机驱动板使用PCA9685芯片,是16通道12bit PWM舵机驱动,用2个引脚通过I2C就可以驱动16个舵机。不仅如此,你还可以通过级联的方式最多级联62个驱动板,总共可以驱动992个舵机!
我们为新版本的驱动器扩展了电机驱动功能,可以同时驱动4路电机或2路步进电机。
驱动板与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或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 }
原创文章,作者:奇果派工坊,如若转载,请注明出处:https://www.7gp.cn/archives/326