当前位置: 首页 > article >正文

PCA9685的配置学习

在程序的世界里,bug 就像隐藏在暗处的小怪兽,时不时跳出来捣乱。而职业生涯中,总有那么一个或几个 bug 让我们刻骨铭心。它或许让项目差点夭折,或许让你熬了无数个通宵,或许有着离奇的出现方式和曲折的解决过程。无论是代码中的逻辑混乱,还是环境配置引发的灾难,亦或是多人协作产生的诡异问题,都可以在这里分享。把你职业生涯里遇到或写过的最大 bug 故事讲出来,让大家一起感受那些惊心动魄、哭笑不得的瞬间,也为后来人敲响警钟吧。

pca9685的配置,这篇文章写的不错,我是参考这个来配置的

PCA9685模块使用(Arduino和STM32)-CSDN博客

bug问题描述

上电,舵机复位。条件满足触发,舵机会一直复位再转到设置的角度。会抖动的很厉害。

bug解决过程

        debug断点调试,一步一步运行,发现没有明显抖动。debug直接无断点运行还是会抖动。推测单步运行正常证明程序的语法和功能没问题,是delay的时间导致。减小delay时间,舵机抖动的更加厉害;增加delay的时间,发现舵机是先复位再执行到设定角度的。对比程序,发现PCA9685_ini(60,105);这个函数也有对各路pwm的输出设置。在这里就是重复设置pwm的输出了。

        解决方法PCA9685_ini(60,105);这个函数只需要在while(1)前面初始化一次即可。后面触发条件控制舵机可以使用PCA9685_setPWM(0,0,0);来设置。同一个通道的PWM变化要有足够的delay时间,来给pwm做出反应。

bug经验教训

        对函数的功能了解不够清晰,不能一味地的copy代码,要理解函数功能。函数的初始化最好在while(1)之前完成。


http://www.kler.cn/a/407644.html

相关文章:

  • 银河麒麟v10 二进制kubeadm+containerd搭建k8s集群(证书100年)—— 筑梦之路
  • 力扣-位运算-1【算法学习day.41】
  • VIT中的cls token是怎么起作用的
  • C#桌面应用制作计算器进阶版01
  • WPF中DataGrid滚动条自动滚动到文字编辑行的实现方法
  • 【人工智能】用Python和NLP工具构建文本摘要模型:使用NLTK和spaCy进行自然语言处理
  • 计算机网络期末试题及答案(整理)
  • 聚焦AI存储,联想凌拓全力奔赴
  • Mysql的事务隔离机制及其脏读、不可重复读、幻读
  • Jvm知识点
  • 09 —— Webpack搭建开发环境
  • web-03
  • 【数据结构-表达式解析】【hard】力扣224. 基本计算器
  • python中的map、split、join函数的作用 => ACM输入输出流
  • 机器翻译 数据集 (NLP基础 - 预处理 → tokenize → 词表 → 截断/填充 → 迭代器) + 代码实现 —— 笔记3.9《动手学深度学习》
  • 从零开始配置Qt+VsCode环境
  • 图的邻接矩阵和邻接表存储
  • 常见协议及其功能
  • c++ chrono 时间统计
  • 11.22 日校内模拟赛总结 + 题解(矩阵加速dp, 分块)
  • 【论文速读】| RobustKV:通过键值对驱逐防御大语言模型免受越狱攻击
  • vue3中如何上传文件到腾讯云的桶(cosbrowser)
  • zotero7 插件使用
  • 瑞佑液晶控制芯片RA6807系列介绍 (三)软件代码详解 Part.10(让PNG图片动起来)完结篇
  • Linux:自定义Shell
  • --- 文件IO java ---