Reinbert/pca9685

3/5 🧩 软硬件结合 已发布
Reinbert 112 Stars 未知 BOM 完整度: 0/5 教程完整度: 0/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的场景)