PCA9685舵机控制板使用

在这里插入图片描述

1. 概述

PCA9685 是一款由 NXP 半导体公司生产的 16 通道 PWM 驱动器,广泛应用于多个舵机、LED 灯带控制等场景。它通过 I2C 总线与主控芯片(如 STM32)通信,可以高效地控制多个舵机的运动和多通道 PWM 输出。该模块适用于多舵机控制、机器人、电动玩具、遥控模型等应用。
使用舵机驱动板,可以解决有些MCU PWM口不足的问题,同时降低MCU的CPU利用率,提升CPU性能,毕竟电机的驱动工作交给了PCA9685芯片。

2. 主要特点

【1】I2C 接口:通过 I2C 总线与主控芯片(如 STM32)进行通信,支持多达 62 个设备通过 I2C 总线连接。
【2】16 通道 PWM 输出:每个通道可以独立控制,适用于 16 个舵机或其他 PWM 控制设备。
【3】可调 PWM 输出频率:频率范围从 24Hz 到 1526Hz,用户可以根据需要调整。
【4】集成电流限制器:内置电流限制功能,避免过流损坏设备。
【5】低功耗设计:在低功耗模式下工作,适合嵌入式系统。

3. 硬件接口说明

3.1 引脚定义

引脚描述连接说明
VCC电源输入(3.3V 或 5V)连接到主控芯片的电源
V+电源输入(舵机电源 5V、6V 或 7.4V)连接到舵机电源(一般不接,使用图片上的绿色端子供电)
SDAI2C 数据线连接到主控的 SDA 引脚
SCLI2C 时钟线连接到主控的 SCL 引脚
GND地线连接到主控地线
OE输出使能(控制是否输出 PWM 信号)默认接地,启用 PWM 输出

3.2 舵机连接

PCA9685 支持 16 个独立的 PWM 通道,每个通道连接一个舵机或其他 PWM 控制设备。每个通道有三个引脚:

V+:连接到舵机电源。
PWM 输出:用于输出 PWM 信号,控制舵机位置。
GND:连接到舵机地线。

3.3 电源要求

VCC:主控电源,一般为 3.3V 或 5V,取决于 I2C 总线的工作电压。
V+:舵机电源,一般为 5V、6V 或 7.4V,根据所使用的舵机型号进行选择。
注意:实际为了接线方便,V+口一般空出,使用图片上的绿色段子进行舵机的电源供电。

4. I2C 通信协议

PCA9685 通过 I2C 接口与主控芯片通信。每个 PCA9685 模块都有一个 7 位 I2C 地址,默认值为 0x40,可以通过地址选择引脚修改。

4.1 I2C 操作

PCA9685 支持标准的 I2C 写/读操作。主控芯片通过发送命令来配置 PCA9685,设置 PWM 信号的频率和占空比。

  • 地址选择:PCA9685 默认 I2C 地址为 0x40,可以通过接地址引脚选择其他地址,最大支持 62 个设备。
  • 寄存器操作:通过 I2C 总线访问 PCA9685 的寄存器,设置 PWM 输出参数。

4.2 常用寄存器

寄存器地址寄存器名称描述
0x00MODE1控制寄存器,配置 PCA9685 的基本工作模式
0x01MODE2输出控制寄存器,用于设置输出的驱动方式
0xFEPRESCALE设置 PWM 输出频率
0x06LED0_ON_L通道 0 PWM 输出的开启时间低字节
0x07LED0_ON_H通道 0 PWM 输出的开启时间高字节
0x08LED0_OFF_L通道 0 PWM 输出的关闭时间低字节
0x09LED0_OFF_H通道 0 PWM 输出的关闭时间高字节

5. 软件控制

5.1 初始化 PCA9685
PCA9685 的初始化步骤包括配置 I2C 通信、设置频率、启用 PWM 输出等。
I2C的配置和使用我在前面的博文中说过很多遍了,这里我默认I2C驱动是完好的,直接描述PCA9685的初始化,初始化完成后,MCU通过I2C通信控制舵机驱动板子,完成多路电机控制,解决了部分MCU PWM引脚不足的问题,比如STM32F103C8T这款常见的MCU只有一路标准电机控制PWM口。

#include "stm32f1xx_hal.h"I2C_HandleTypeDef hi2c1;#define PCA9685_ADDR 0x40  // I2C 地址// I2C 写操作
void I2C_Write(uint8_t reg, uint8_t data) {HAL_I2C_Mem_Write(&hi2c1, PCA9685_ADDR, reg, I2C_MEMADD_SIZE_8BIT, &data, 1, 1000);
}// 初始化 PCA9685
void PCA9685_Init(void) {I2C_Write(0x00, 0x01);  // 设置模式寄存器,启用设备I2C_Write(0x01, 0x04);  // 设置输出驱动I2C_Write(0xFE, 0x79);  // 设置预分频器,调整频率(50Hz)
}

5.2 设置 PWM 输出

可以通过修改寄存器来设置 PWM 输出的占空比,从而控制舵机的角度。

// 设置指定通道的 PWM 占空比
void PCA9685_SetPWM(uint8_t channel, uint8_t pulse) {uint8_t reg_on = 0x06 + channel * 4;    // 通道的开启时间寄存器uint8_t reg_off = 0x08 + channel * 4;   // 通道的关闭时间寄存器// 设置占空比的低字节和高字节I2C_Write(reg_on, 0x00);  // 开始时间(低字节)I2C_Write(reg_off, pulse);  // 结束时间(高字节和低字节)
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/13557.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025.2.6(c++杂项补充及qt基础介绍)

作业 1> 完善C的思维导图 2> 重新创建一个新的项目,将默认提供的代码进行注释 3> QT的思维导图 4> 刷2个 98 C 牛客网上的题 笔记(后期复习补上)

Postgresql的三种备份方式_postgresql备份

这种方式可以在数据库正在使用的时候进行完整一致的备份,并不阻塞其它用户对数据库的访问。它会产生一个脚本文件,里面包含备份开始时,已创建的各种数据库对象的SQL语句和每个表中的数据。可以使用数据库提供的工具pg_dumpall和pg_dump来进行…

京准:NTP卫星时钟服务器对于DeepSeek安全的重要性

京准:NTP卫星时钟服务器对于DeepSeek安全的重要性 京准:NTP卫星时钟服务器对于DeepSeek安全的重要性 在网络安全领域,分布式拒绝服务(DDoS)攻击一直是企业和网络服务商面临的重大威胁之一。随着攻击技术的不断演化…

S4 HANA (递延所得税传输)Deferred Tax Transfer - S_AC0_52000644

本文主要介绍在S4 HANA OP中S4 HANA (递延所得税传输)Deferred Tax Transfer - S_AC0_52000644的后台配置及前台操作。具体请参照如下内容: 目录 Deferred Tax Transfer - S_AC0_52000644 1. 后台配置 1.1 Business Transaction Events激活- FIBF 2. 前台操作 …

Redis --- 使用GEO实现经纬度距离计算

什么是GEO&#xff1f; Spring Boot 项目中可以通过 Spring Data Redis 来使用 Redis GEO 功能&#xff0c;主要通过 RedisTemplate 和 GeoOperations 接口来操作地理位置数据。 Service public class GeoService {Autowiredprivate RedisTemplate<String, Object> red…

【中间件】 Kafka

1.先导知识&#xff1a; 消息队列MQ(Message Queue): 将需要传输的数据临时(设置有效期)存放在队列中,进行存取消息消息队列中间件&#xff1a; 用来存储消息的中间件(组件) 2.消息队列的应用场景 异步处理 为什么要使用消息队列&#xff1f; 比较耗时的操作放在其他系统中…

android 打包AAR-引入资源layout-安卓封包

Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_cyberwin_devicescanner);mListView (ListView) this.findViewById(R.id.result);mListView.setAdapter(mListAdapter);

问卷数据分析|SPSS之分类变量描述性统计

1.点击分析--描述统计--频率 2. 选中分类变量&#xff0c;点击中间箭头 3.图表选中条形图&#xff0c;图表值选择百分比&#xff0c;选择确定 4.这里显示出了描述性统计的结果 5.下面就是图形&#xff0c;但SPSS画的图形都不是很好啊看&#xff0c;建议用其他软件画图&#xff…

【Gitlab】虚拟机硬盘文件丢失,通过xx-flat.vmdk恢复方法

前言 由于近期过年回家&#xff0c;为了用电安全直接手动关闭了所有的电源&#xff0c;导致年后回来商上电开机后exsi上的虚拟机出现了问题。显示我的gitlab虚拟机异常。 恢复 开机之后虚拟机异常&#xff0c;通过磁盘浏览发现gitlab服务器下面的虚拟机磁盘文件只有一个xxx-f…

Python aiortc API

本研究的主要目的是基于Python aiortc api实现抓取本地设备媒体流&#xff08;摄像机、麦克风&#xff09;并与Web端实现P2P通话。本文章仅仅描述实现思路&#xff0c;索要源码请私信我。 1 demo-server解耦 1.1 原始代码解析 1.1.1 http服务器端 import argparse import …

【玩转全栈】--创建一个自己的vue项目

目录 vue介绍 创建vue项目 vue页面介绍 element-plus组件库 启动项目 vue介绍 Vue.js 是一款轻量级、易于上手的前端 JavaScript 框架&#xff0c;旨在简化用户界面的开发。它采用了响应式数据绑定和组件化的设计理念&#xff0c;使得开发者可以通过声明式的方式轻松管理数据和…

基于Hexo实现一个静态的博客网站

原文首发&#xff1a;https://blog.liuzijian.com/post/8iu7g5e3r6y.html 目录 引言1.初始化Hexo2.整合主题Fluid3.部署评论系统Waline4.采用Nginx部署 引言 Hexo是中国台湾开发者Charlie在2012年创建的一个开源项目&#xff0c;旨在提供一个简单、快速且易于扩展的静态博客生…

足球俱乐部管理系统的设计与实现

&#x1f345;点赞收藏关注 → 添加文档最下方联系方式咨询本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345; 项目视频 足…

tolua[一]框架搭建,运行example

一.安装tolua https://github.com/topameng/tolua 下载LuaFramework_UGUI的zip 将Assets目录拷贝到项目根目录下 提示确认注册&#xff0c;遇到这个对话框点确定即可 生成如下目录 二.LuaFramework->Build Windows Resource 接下来的目标是将这个main场景跑起来 需要先执行…

JVM图文入门

往期推荐 【已解决】redisCache注解失效&#xff0c;没写cacheConfig_com.howbuy.cachemanagement.client.redisclient#incr-CSDN博客 【已解决】OSS配置问题_keyuewenhua.oss-cn-beijing.aliyuncs-CSDN博客 【排坑】云服务器docker部署前后端分离项目域名解析OSS-CSDN博客 微服…

Day37-【13003】短文,串的基本概念,匹配算法,算法时间复杂度,真题训练

文章目录 第二节 串串的基本概念串的模式匹配朴素的模式匹配算法(BF算法)算法最坏时间复杂度O(n x m) 改进的模式匹配算法(KMP算法)特征向量next&#xff0c;来确定k值特征向量next的算法实现 算法最坏时间复杂度O(n)进一步改进next值的计算&#xff0c;简化步骤 第四章真题真题…

GPU-Z重磅更新,Blackwell架构全面支持

由TechPowerUp倾力打造的GPU-Z&#xff0c;是一款集显卡信息查看、实时监控与深度诊断于一体的强大工具。它以其轻巧灵便的体积、完全免费的使用模式以及极其友好的操作界面&#xff0c;赢得了全球无数用户的青睐与信任&#xff0c;成为PC硬件领域中不可或缺的软件。 GPU-Z不仅…

leetCode刷题-图、回溯相关

岛屿数量 class Solution { private:int mi;int mj; public:int numIslands(vector<vector<char>>& grid) {mi grid.size() - 1; // i的范围 0~mimj grid[0].size() - 1; // j的范围 0~mjint landnum 0;bool sea false;do {pair<int, int> res …

VMware Win10下载安装教程(超详细)

《网络安全自学教程》 从MSDN下载系统镜像&#xff0c;使用 VMware Workstation 17 Pro 安装 Windows 10 consumer家庭版 和 VMware Tools。 Win10下载安装 1、下载镜像2、创建虚拟机3、安装操作系统4、配置系统5、安装VMware Tools 1、下载镜像 到MSDN https://msdn.itellyou…

基础篇05-直方图操作

本节将简要介绍Halcon中有关图像直方图操作的算子&#xff0c;重点介绍直方图获取和显示两类算子&#xff0c;以及直方图均衡化处理算子。 目录 1. 引言 2. 获取并显示直方图 2.1 获取&#xff08;灰度&#xff09;直方图 (1) gray_histogram (2) gray_histo_abs (3) gr…