拙网论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 182|回复: 0

PCA9685 16路12位pwm信号发生器

[复制链接]

25

主题

28

帖子

111

积分

注册会员

Rank: 2

积分
111
发表于 2018-5-21 18:05:13 | 显示全部楼层 |阅读模式
PCA9685 16路12位pwm信号发生器http://nicekwell.net/blog/20161213/pca9685-16lu-12wei-pwmxin-hao-fa-sheng-qi.html

16路12位PWM信号发生器,可用于控制舵机、led、电机等设备,i2c通信,节省主机资源。
一、概述和硬件1、概述
数据手册从网上找一下很容易找到(比如http://www2.ic37.com/pdf/pdf_download.asp?id=11155998_602380),但没有找到中文版,本文记录的是我使用中总结的内容和方法。
很常见的模块板子如上图所示,这个板子也比较便宜,十几块钱一个。
i2c通信,只需要几根i2c线就可以控制16路pwm,周期和占空比都可控。
可以多个模块级联。
可控制16路通道的四种工作模式:关、开、pwm、可变pwm。
精度是12位:
工作频率
时间分辨率
通常舵机500~2500us可分成份数
通常舵机500~2500us,旋转角180°的角度分辨率
对于电调,500us对应100%的占空比分辨率

50Hz
4.88us
410份
0.439°
0.976%≈1%(约100份)

60Hz
4us
492份
0.366°
0.8%(125份)
驱动方式可以选择开漏输出或推挽输出。
2、硬件1、电压
数字电路电压范围可接受3.3和5v电平。
此外还有一个v+引脚,这个引脚是给舵机供电用的,可以接稍微高一点的电压。
2、i2c地址
有6个地址控制脚,通过这些引脚可以控制设备的i2c地址。
7位的I2C地址为:0x40 + A5:A0,A5到A0如果不做任何处理的话是0,想要把哪一位置1就把那个引脚焊到一起。
另外用i2cdetect检测出还有一个0x70地址一直存在,这是一个通用地址,可以给所有从机下达指令。
3、使能脚
模块有一个OE反使能脚,这个引脚低电平使能,不接的话模块内部默认已经接地使能了,所以正常使用可以不接。
二、寄存器功能
内部地址(hex)
名称
功能

00
MODE1
设置寄存器1

01
MODE2
设置寄存器2

02
SUBADR1
i2c-bus subaddress1

03
SUBADR2
i2c-bus subaddress2

04
SUBADR3
i2c-bus subaddress3

05
ALLCALLADR

06
LED0_ON_L

07
LED0_ON_H

08
LED0_OFF_L

09
LED0_OFF_H


0x06 + 4*X
LEDX_ON_L

0x06 + 4*X + 1
LEDX_ON_H

0x06 + 4*X + 2
LEDX_OFF_L

0x06 + 4*X + 3
LEDX_OFF_H

…        上面共16路通道

FA
ALL_LED_ON_L

FB
ALL_LED_ON_H

FC
ALL_LED_OFF_L

FD
ALL_LED_OFF_H

FE
PRE_SCALE
控制周期的寄存器

FF
TestMode




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|抱朴守拙BBS

GMT+8, 2025-5-26 03:21 , Processed in 0.185155 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表