该带有 I2C 接口的 16 通道 PWM 伺服控制器模块设置为与伺服电机一起使用,但也可用于驱动 LED。
包装内容包括:
- 16 通道 PWM 伺服控制器模块
16 通道 PWM 伺服模块的主要特点:
- 使用 PCA9685 芯片的 16 个可单独控制的 PWM 通道
- 每个伺服器的 PWM / 接地 / 5V 引脚
- I2C 接口
- 24Hz 至 1.5KHz PWM 频率范围,带 12 位分辨率
- 多个模块可以菊花链连接
微控制器可以直接驱动 LED 和伺服电机等 PWM 设备,但它们可以驱动的设备数量有限。这些模块仅使用 MCU 上的 2 个引脚 (I2C) 即可实现大量 PWM 输出。它们还可以减轻 MCU 的部分处理需求,使其可以专注于其他任务。
这款 16 通道 PWM 控制器基于 PCA9685 芯片。它旨在提供多达 16 个 PWM 控制通道,可用于控制 LED 亮度或驱动伺服电机。该模块的 PWM 频率可编程为 24Hz 至 1.5KHz,每个输出的分辨率为 12 位。此外,这些通道可以完全编程为开/关,以用作通用数字输出。但它们不能用作输入。
如果您想驱动超过 16 个输出,可以将多个模块以菊花链形式连接在一起。模块上有焊桥位置,可用于为每个模块设置不同的 I2C 地址,最多可将 62 个模块连接在一起。这些地址标记为 A0 – A5,使用二进制寻址。芯片保留了 2 个 I2C 地址,这就是为什么可以使用 62 个而不是 64 个可能的地址的原因。
模块的基本 I2C 地址为 0x40,A0-A5 跳线均未就位。如果您想添加第二块电路板,则需要用焊料块或 0 欧姆电阻或类似物跳线连接 A0 的两个焊盘,这样第二块电路板的地址就会变成 0x41。
- 主板 0:地址 0x40,无跳线
- 板 1:地址 0x41,跳线 A0
- 板 2:地址 0x42,跳线 A1
- 板 3:地址 0x43,跳线 A0 和 A1
- 等等…。
电路板连接:
1×2 接线端子(电机电源输入)
这是与伺服器一起使用时的主要电源输入,用于为电机供电。通常向此连接器施加 5-6V。当电源施加到 V+ 时,绿色 LED 会亮起
- GND = 电机电源接地。此接地与接头上的 GND 针脚不共用
- V+ = 伺服电机使用的电压。通常为 5V,最高可达 6V
1×6 接头(逻辑连接)
此接头用于与 MCU 建立连接。控制器兼容 3.3 和 5V。
- GND = 连接到 MCU 上的地
- OE = 输出启用。板上的引脚被拉低以始终启用输出。可选地,可以将此引脚驱动为高电平以禁用所有输出,这对于某些应用可能很方便
- SCL = I2C 时钟。连接到 MCU 上的 SCL 引脚
- SDA = I2C 数据。连接到 MCU 上的 SDA 引脚
- VCC = 可以是 3.3V 或 5V,应与您的 MCU 电源匹配。它为模块上的 PCA9685 芯片供电。
- V+ = 此引脚与接线板上的 V+ 引脚共用,是为伺服器供电的另一种方式。最好使用接线板来供电 V+。如果电源连接到接线板,您也可以从此引脚获取电源。
注意:电路板另一端未安装的 1×6 接头用于将多个模块以菊花链形式连接在一起。电路板两端的连接相同,因此,如果更适合您的应用,您可以在未安装的位置添加接头并将其用作输入。例如,您可以在模块底部放置一个公接头,以便模块水平插入面包板。
1×3 (x16) 彩色编码接头(伺服连接)
输出接头采用颜色编码,以匹配伺服电机随附的标准电缆,以便于连接。它们在板上编号为 0 至 15。每个连接都有以下引脚。
- PWM(黄色)= 连接到伺服电机上的 PWM 引脚。伺服线颜色可能是橙色、黄色或白色。
- V+(红色)= 连接到伺服电机上的电源引脚。伺服线颜色为红色
- GND(黑色)= 连接到伺服电机上的接地引脚。伺服线颜色可能是棕色或黑色
注意:如果使用带 LED 的模块:
- LED 连接在 PWM 和 V+ 之间,LED 的阴极连接到 PWM。您可以以另一种方式连接 LED,但 PCA9685 在该配置中的源电流限制为 10mA。
- 所有 PWM 引脚都串联了一个 220 欧姆电阻。当驱动标准低功率指示器型 LED 时,这些电阻通常可作为限流串联电阻,并且如果所有 LED 均全亮,则可使 PCA9685 设备的总功耗保持在规格范围内。
我们的评估结果:
这些伺服控制器非常适合控制多个伺服器,并将一些布线杂乱从 MCU 移开,这很好。一旦使用简单的 I2C 命令将伺服器设置为特定位置,控制器就会负责保持电机更新所需的开销,从而释放 MCU 来执行其他任务。如果您正在寻找此功能,但在 Arduino 屏蔽中,请查看以下链接中的我们的 16 通道 PWM 屏蔽。
伺服器预计每 20 毫秒会出现一次脉冲,脉冲宽度会告诉伺服器应将轴定位在何处。大多数标准伺服器的位置范围约为 0-180 度。它们通常检测到约 1 毫秒的脉冲宽度为 0 度,2 毫秒的脉冲宽度为 180 度。这些值之间的任何脉冲宽度都可用于将伺服器设置为任意位置。例如,1.5 毫秒的脉冲宽度将把轴设置为 90 度,1.75 毫秒将把轴设置为 135 度,等等。
不同类型的伺服器之间,伺服器的确切范围可能相差很大。有些伺服器可能只在 20-160 度之间,而不是在 0-180 度之间,而有些则可能超过 180 度。脉冲宽度的解释(例如 1.5 毫秒为 90 度)在不同的伺服器之间也可能相差很大。通常需要进行一些实验来表征您正在使用的伺服器。一般来说,您不希望伺服器被驱动到它们可以到达的位置之外,因为这会导致高失速电流,并且可能会随着时间的推移损坏伺服器中的齿轮。在下面的程序中,有两个常数 SERVOMIN 和 SERVOMAX 用于设置电机的限制。这些可以根据您正在使用的伺服器进行调整。
要运行下面的程序,请将 SCL 和 SDA 线连接到 MCU 上的相同线路。还要从 MCU 向接头供电和接地。为了测试单个小型伺服器(如 SG90),可以将来自 MCU 的 5V 电源接入 V+ 引脚或螺丝端子,为伺服器供电,也可以使用单独的电源。OE 接头引脚可以保持未连接状态。
将伺服器连接到模块。程序默认使用通道 0,但可以将其更改为 16 个可用通道中的任意一个。
下面的程序使用Adafruit_PWMServo库,因此请务必加载它才能使用此程序。它可以通过 Arduino IDE 库管理器下载。
16 通道 PWM 伺服控制器程序
/* 锻炼 PCA9685 伺服电机控制器 在通道 0 上来回旋转单个伺服器以测试基本操作 使用 Adafruit_PWMServoDriver.h 库*/ #include < Wire . h > #include < Adafruit_PWMServoDriver . h > Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver ( 0x40 ) ; #define SERVOMIN 100 // 这是“最小”脉冲长度计数(共 4096 个)#define SERVOMAX 440 // 这是“最大”脉冲长度计数(共 4096 个)// 设置为伺服通道以测试int servonum = 0 ; // =================================================================================== //初始化// ========================================================================================= void setup ( ) { Serial.begin ( 9600 ) ; Serial.println ( "通道0伺服测试" ) ; pwm.begin ( ) ; pwm.setPWMFreq ( 60 ) ; delay ( 10 ) ; } //==================================================================================== // Main //========================================================================================= void loop ( ) { // 驱动伺服向前然后向后。for ( int pulselen = SERVOMIN ; pulselen < SERVOMAX ; pulselen ++ ) { pwm . setPWM ( servonum , 0 , pulselen ) ; } delay ( 500 ) ; for (int pulselen = SERVOMAX ; pulselen > SERVOMIN ; pulselen -- ){ pwm.setPWM (servonum , 0 , 脉冲长度); } 延迟(1000 ); }
在发货之前,这些模块是:
- 使用示例程序进行检查和测试
- 重新包装在高品质可重复密封的 ESD 袋中,以便安全存储
笔记:
- 没有任何
技术规格
经营评级 | ||
电压(VCC) | 3.3 或 5V | |
电压(V+) | 4.8-6VDC(典型值5V) | |
当前(空闲) | 6mA(典型值) | |
电流(仅限 PWM 控制器) | 400 毫安(最大) | |
电流(最大带伺服装置) | 取决于使用的伺服器 | |
方面 | ||
PCB 长 x 宽 | 63 x 26毫米(2.5 x 1英寸) | |
产品规格书 | PCA9685 |