Reinbert/pca9685
3/5
🧩 软硬件结合
已发布
项目简介
This software is a devLib extension to wiringPi http://wiringpi.com/ and enables it to control the Adafruit PCA9685 16-C
这是一个基于wiringPi库开发的扩展软件,专门用于在树莓派上通过I2C接口控制Adafruit PCA9685 16通道12位PWM/舵机驱动板。项目由Reinhard Sprung创建,旨在解决树莓派GPIO引脚数量有限、无法直接驱动多个舵机或LED的问题。PCA9685驱动板本身支持16路独立PWM输出,但需要相应的软件库才能与树莓派通信,这个项目正是填补了这一空白。
标签
项目特点
基于wiringPi库,与树莓派原生GPIO操作兼容性好
支持16路独立12位分辨率PWM输出,精度高达4096级
通过I2C接口通信,仅占用树莓派2个引脚即可控制16个通道
支持级联多个PCA9685模块,最多可扩展至992路PWM输出
提供简洁的C语言API,方便集成到各种项目中
可直接控制舵机(50Hz频率)和LED(任意频率)两种模式
技术规格
| 通信接口 | I2C(SDA/SCL) |
|---|---|
| PWM通道数 | 16路 |
| PWM分辨率 | 12位(0-4095) |
| PWM频率范围 | 24Hz - 1526Hz(默认50Hz) |
| 输出类型 | 开漏输出,可驱动舵机/LED |
| 供电电压 | 逻辑:3.3V/5V,电机:5V-6V(外部供电) |
| 最大电流 | 每通道25mA(逻辑),总电流需外部电源 |
| 级联能力 | 最多62个模块(通过I2C地址跳线) |
| 兼容平台 | 树莓派(所有型号) |
| 依赖库 | wiringPi |
项目资源
搜索资源
物料清单 (BOM)
| 物料名称 | 数量 | 参考价格 | 备注 |
|---|---|---|---|
| 树莓派(任意型号) | 1 | — | 需安装wiringPi库 |
| Adafruit PCA9685 16通道PWM驱动板 | 1 | — | 或兼容模块 |
| 5V/6V外部电源(驱动舵机用) | 1 | — | 根据负载选择电流 |
| 杜邦线(母对母) | 4 | — | I2C连接用 |
| 舵机或LED | 1-16 | — | 根据项目需求 |
| I2C地址跳线 | 可选 | — | 用于级联多个模块 |
能力画像
**记忆与知识检索**:2/5 — 需要查阅PCA9685数据手册和wiringPi文档,但信息量不大
**动手与操作**:3/5 — 需要连接I2C线路和外部电源,焊接或插接杜邦线
**编程与算法**:3/5 — 需要编写C代码调用库函数,但API简单,无需复杂算法
**设计与建模**:1/5 — 不涉及3D建模或电路设计,直接使用现成模块
**实验与调试**:4/5 — 需要调试I2C通信、PWM频率和舵机角度,可能遇到信号干扰问题
**协作与分享**:2/5 — 项目为个人使用,但可分享代码和接线图
**学习与研究**:3/5 — 适合学习I2C协议、PWM原理和树莓派GPIO编程
**系统集成**:4/5 — 可集成到机器人、灯光系统等大型项目中,作为底层驱动模块
所需技能
树莓派基本操作(SSH连接、文件传输)
C语言基础(函数调用、编译运行)
I2C通信协议基础
电子电路基础(电源、接地、信号线连接)
舵机或LED驱动原理
使用wiringPi库进行GPIO编程
适用场景
树莓派机器人关节控制(多舵机机械臂、双足机器人)
智能灯光系统(16路独立LED调光、呼吸灯效果)
模型遥控设备(航模舵机测试台、云台控制)
自动化实验平台(多路PWM信号发生器)
树莓派教学项目(演示I2C通信和PWM原理)
家庭自动化(窗帘电机、阀门控制等需要多路PWM的场景)