Arduino与Proteus仿真实例-PCA9685输出PWM驱动LED仿真

PCA9685输出PWM驱动LED仿真

PCA9685 是 I2C 总线控制的 16 通道 LED 控制器,针对红/绿/蓝/琥珀色 (RGBA) 彩色背光应用进行了优化。每个 LED 输出都有自己的 12 位分辨率(4096 步)固定频率的独立 PWM 控制器,可运行以 24 Hz 至 1526 Hz 的典型频率可编程,占空比可在 0 % 至 100 % 之间调节,以允许将 LED 设置为特定的亮度值。所有输出都设置为相同的 PWM 频率。

每个 LED 输出可以关闭或打开(无 PWM 控制),或设置为其单独的 PWM 控制器值。 LED 输出驱动器被编程为具有 25 mA 电流的开漏5 V 下的灌电流能力或具有 25 mA 灌电流能力的图腾柱(Totem Pole ),5 V 下的 10 mA 拉电流能力。PCA9685 在 2.3 V 至 5.5 V 的电源电压范围内工作,输入和输出可承受 5.5 V 电压。 LED 可以直接连接到 LED 输出(高达 25 mA,5.5 V)或通过外部驱动器和最少量的离散用于更大电流或更高电压 LED 的组件。

PCA9685 属于新的 Fast-mode Plus (Fm+) 系列。 Fm+ 器件提供更高的频率(高达 1 MHz)和更密集的总线操作(高达 4000 pF)。尽管 PCA9635 和 PCA9685 具有许多相似的特性,但 PCA9685 具有一些独特的特性,使其更适合 LCD 或 LED 背光和流光溢彩等应用。

在前面的文章中,对PCA9685也做了相应的介绍,请参考:

1、仿真电路原理图

在这里插入图片描述

2、仿真代码实现

本次实例使用了如下开源库:

演示代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "PCA9685.h"
#include <Wire.h>

PCA9685 led;


void setup()
{
// join I2C bus (I2Cdev library doesn't do this automatically)
Wire.begin();
Serial.begin(9600);
led.init(0x7f);
// Set freq to 100Hz, range from 24Hz~1526hz
led.setFrequency(100);


}

void loop()
{
for (int i=1;i<17;i++){
led.setPwm(i, 0, 1024);
}
delay(1000);
}

3、仿真结果

在这里插入图片描述

文章来源: https://iotsmart.blog.csdn.net/article/details/121135822