【雕爷学编程】Arduino动手做(161)---16路PWM舵机驱动板
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百六十一:16路PWM Servo舵机驱动板 机器人控制器IIC接口驱动器模块 PCA9685
知识点:PCA9685芯片
PCA9685是一款基于I²C总线通信的12位精度16通道PWM波输出的芯片,该芯片最初由NXP推出时主要面向LED开关调光,同样可用于控制舵机、电机等任何可以适用PWM控制的电气设备。
利用I²C总线通信的功能特性,使其常用于拓展主控芯片的控制能力,因为其仅需两根线同主机芯片建立I²C通信,即可替代主控芯片的GPIO引脚来输出PWM波,节省主控芯片资源,这项特点在需要控制的设备数量超过主控芯片的可用GPIO引脚数量时将尤为突出。
PCA9685是一款I2C总线控制的16通道LED控制器,专为红/绿/蓝/琥珀(RGBA)彩色背光应用而优化。每个LED输出都有自己的12位分辨率(4096步)固定频率单独PWM控制器,可在可编程频率下工作,典型频率为24 Hz到1526 Hz,占空比可调节从0%到100%,以使LED达到特定的亮度值。所有输出的PWM频率都设置为相同。
每个LED输出可以关闭或打开(无PWM控制),或设置为其单独的PWM控制器值。LED输出驱动器被编程为开漏,带有在5V时25mA的电流下沉能力,或者是totem极,带有在5V时25mA的下沉和10mA的源能力。PCA9685的工作电压范围为2.3V至5.5V,输入和输出均可容忍5.5V。LED可以直接连接到LED输出(高达25mA,5.5V),或通过外部驱动器和最少量的离散元件控制更大电流或更高电压的LED。
PCA9685处于新的快速模式Plus(Fm +)系列中。 Fm +设备提供更高的频率(高达1MHz)和更密集的总线操作(高达4000pF)。
虽然PCA9635和PCA9685具有许多相似的特性,但PCA9685具有一些独特的特点,使其更适合于LCD或LED背光和Ambilight等应用:
• PCA9685允许交替的LED输出开启和关闭时间以最小化电流浪涌。每个16个通道的开启和关闭时间延迟可以独立编程。这个特性在PCA9635中不可用。
• PCA9685具有4096个步骤(12位PWM)的单独LED亮度控制。PCA9635仅具有256个步骤(8位PWM)。
• 当在系统中合并多个LED控制器时,如果使用PCA9635,多个设备之间的PWM脉冲宽度可能会有所不同。PCA9685具有可编程分频器,以调整多个设备的PWM脉冲宽度。
• PCA9685具有外部时钟输入引脚,可接受用户提供的时钟(最大50 MHz)代替内部25 MHz振荡器。此功能允许多个设备同步。PCA9635没有外部时钟输入功能。
• 与PCA9635一样,PCA9685也具有用于PWM控制的内置振荡器。但是,与PCA9635的典型频率97.6kHz相比,PCA9685用于PWM控制的频率可调节约为24 Hz至1526 Hz。这允许使用PCA9685与外部电源控制器。所有位都以相同的频率设置。
• LEDn输出引脚的上电复位(POR)默认状态在PCA9685的情况下为LOW。而对于PCA9635,则为HIGH。
PCA9685的技术规格:
◆16个LED驱动程序。EATH EACTER EUTPENT可编程::
离开
在
可编程的LED亮度
可编程的LED转折时间来帮助减少EMI
◆1MHz快速模式加上兼容的I2C总线接口,具有30mA高驱动能力在SDA输出上,用于驾驶高电容性总线。
◆每个LED输出的4096步(12位)线性可编程亮度从完全关闭(默认值)到最大亮度不等
◆LED输出频率(所有LED)通常从24Hz到1526Hz(pre_scale寄存器中的1EH默认值为1EH,导致振荡器时钟为25MHz的200Hz刷新率)。
◆具有软件可编程的开放式LED输出选择(Totem Pole的默认值)的16个图腾杆输出(接收器25mA和源10mA)。无输入功能。
◆输出状态更改可在确认或停止命令上编程,以同时更新输出字节或全部(默认为停止更改)。
◆主动低输出启用(OE)输入PIN。LEDN输出可编程为逻辑1,逻辑0(默认电源时)或高阻抗当OE高。
◆6个硬件地址引脚允许将62个PCA9685设备连接到同一I2C-BUS。
◆切换OE允许硬件LED闪烁。
◆4个软件可编程的I2C-BUS地址(一个LED所有呼叫地址和三个LED子呼叫地址)允许在任何组合中同时对设备组进行地址(例如,一个用于所有呼叫的寄存器,以便所有PCA9685S 可以同时解决I2C-BUS,以及用于三个不同地址的第二个寄存器,以便可以在组中同时处理总线上的所有设备中的1/3个设备)。 软件启用并禁用这些I2C总线地址。
◆软件重置功能(SWRST一般呼叫)允许通过I2C-BUS重置设备
◆25MHz典型的内部振荡器不需要外部组件。
◆外部50MHz(最大)时钟输入。
◆内部电力重置。
◆SDA/SCL输入上的噪声过滤器。
◆输出的边缘速率控制。
◆上电上没有输出故障。
◆支持热插入。
◆低备用电流。
◆操作电源电源电压范围为2.3V至5.5V。
◆5.5V耐受输入。
◆40℃至 +85℃操作。
◆ESD保护超过JESD22-A114,每JESD22-A115和1000V CDM PER JESD222222-C101。
◆对超过100mA。的JEDEC Standard Jesd78进行了闩锁测试
◆提供的包装:TSSOP28,HVQFN28。
简述I²C#
I²C(Inter-Integrated Circuit)字面上的意思是集成电路之间,它其实是I²C Bus简称,所以中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展。
I²C只使用两条双向漏极开路(Open Drain)线,其中一条线为传输数据的串行数据线(SDA),另一条线是启动或停止传输以及发送时钟序列的串行时钟线(SCL),这两条线上都有上拉电阻。I²C允许相当大的工作电压范围,但典型的电压准位为+3.3V或+5v。
I²C的参考设计使用一个7比特长度的地址空间(2^7=128),但保留了16个地址,所以在一组总线最多可和112个节点通信。虽然最大的节点数目是被地址空间所限制住,但实际上也会被总线上的总电容所限制住,一般而言为400 pF,这限制了实际通信时的线路长度只有几米。
16路PWM舵机驱动板PCA9685模块
16路PWM舵机驱动板特性:
1、PCA9685芯片被包裹在小板的中央
2、电源输入端子
3、绿色电源指示灯
4、在4组3针连接器中方便你一次插入16个伺服电机(伺服电机的插头稍宽于0.1",所以你可以放4对0.1"的接头)
5、接线板上输入的反向极性保护
6、级联设计
7、V+线上放置一个大电容(在某些场合你会需要) 外围输入最大电压取决于这个10V1000uf的电容。
8、所有PWM输出线上都放一个220欧姆系列电阻器来保护他们,并能轻易的驱动LED。
16路PWM舵机驱动板模块参考电原理图