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

STM32 控制12VRGB灯带颜色亮度调节,TFTLCD显示

接了一个同学的小项目,要实现控制一个实体,控制灯带的亮度为红/绿/蓝/白/黄以及亮度的叠加。
时间要的比较急,要两天实现,因此不能打板,只能采用现有模块拼接。

一. 实施方案

一开始觉得很简单,就是使用五个NMOS分别控制五个灯带,最后实现调光的效果,但是去了一趟教化广场,发现首先没有五个颜色的灯带,因为大家现在都是从淘宝上买,所以最后在犄角旮旯翻出了几个RGB灯带,就是有三个正极和一个负极分别控制RGB三种颜色,但是RGB可以组成任何颜色,所以我只需要来控制一个RGB灯带的三个颜色通道就可以了
买了插件NMOS,以为可以3.3V打开,查了一下Vgs(th),当时选了IRF530N,查的时候写了Vgs(th)是2-4V,当时以为3.3V应该也能开的差不多吧…但是后来发现错的离谱,收获的建议:Vgs(th)的驱动电压到底选择多少还是要看立创的这个地方写的导通电阻@导通电压,就选择这个驱动电压就可以了
在这里插入图片描述

在这里插入图片描述


然后我就开始焊一个面包板,开始尝试用NMOS来控制,但是我发现有问题了,NMOS是在灯后面的,控制的是灯的负极,就像是孙老师讲的这个NMOS的用法
在这里插入图片描述

那我该怎么用NMOS来控制有三个正极一个负极的灯来产生五种颜色的光呢?我想了一会,决定这么做
在这里插入图片描述
理论上这是可行的,可以实现三个同占空比或者任意两个或者一个的相同占空比混合,但是当我这样实现了之后,发现灯带的颜色很暗…
这又是为什么呢?之前说的MOS的开启电压的事情开始攻击我…
我把灯带换成了电阻,

  • 发现220欧姆的电阻能够分压0.9V,MOS分去11.1V
  • 发现2.2k欧姆的电阻能够分压8.4V,MOS分去3.6V
  • 1个灯带的时候MOS分压5.69V,我的灯只能分到可怜的7V不到,所以很暗也是正常的,而且在低压的时候红光的亮度会远高于绿光和蓝光,这会直接导致黄色和白色的颜色不正常…

就意味着我下面的这个板子白焊了(我的这个板子用反了!焊点应该是背面哈哈哈哈),
在这里插入图片描述

然后我又想办法,你可能会说使用三极管驱动MOS,但是我当时手里没有插件的三级管了,而且要多好多焊点…当时打羽毛球的时候就一直在想,甚至想到用一堆开关加并联的一堆电阻这种愚蠢的方式…
好像柳暗花明的是我想到了直流电机驱动不就是我想要实现的PWM吗,想到了我本科做大创的时候无比嫌弃的L298N(因为天天烧),就立马翻出来了一个L298N,试了一下,当看到12V的PMW方方正正的波形的时候差点感动哭了…

然后驱动的问题解决了就没啥事情了,后面就是写一下控制的逻辑,写一下TFT屏幕的代码,最后的成品如下所示,能够实现控制五个颜色通道的亮度叠加
在这里插入图片描述

在这里插入图片描述

二. 控制程序

现在就是三路PWM,三个开关,加一个TFTLCD的程序,加一点处理的逻辑,代码很简单,STM32的型号是STM32F103RCT6
在这里插入图片描述

三. 代码

https://github.com/Tipriest/12VRGBLighteningBars

http://www.xdnf.cn/news/12382.html

相关文章:

  • 全面理解 Linux 内核性能问题:分类、实战与调优策略
  • 【vLLM 学习】Cpu Offload Lmcache
  • 硅基计划2.0 学习总结 陆 抽象类与接口
  • 电磁加热和铁锅温升的讨论
  • Tesseract配置参数详解及适用场景(PyTesseract进行OCR)
  • 【Survival Analysis】【机器学习】【3】 SHAP可解釋 AI
  • 6.6 计算机网络面试题
  • scikit-learn机器学习
  • 固态继电器与驱动隔离器:电力系统的守护者
  • Nuxt.js 布局系统详解:构建可复用页面框架
  • 豆包和deepseek 元宝 百度ai区别是什么
  • 3B模型大概占多少存储
  • My图床项目
  • [蓝桥杯]采油
  • 使用VTK还是OpenGL集成到qt程序里哪个好?
  • P1345 [USACO5.4] 奶牛的电信Telecowmunication
  • Levenberg-Marquardt算法详解和C++代码示例
  • 安卓基础(ProGuard vs R8)
  • NodeJS Koa 后端用户会话管理,JWT, Session,长短Token,本文一次性讲明白
  • Redis——1、服务端高并发分布式结构演进之路
  • Excel 表格内批量添加前缀与后缀的实用方法
  • keysight是德科技N9923A网络分析仪
  • 排序算法总结(C++)
  • C文件操作2
  • python打卡训练营打卡记录day46
  • 在aarch64平台编译写入传统xls格式文件开源库xlslib的步骤
  • 《影像引导下骨盆创伤手术的术前骨折复位规划:基于学习的综合流程》|文献速递-深度学习医疗AI最新文献
  • [论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG
  • 密码学基础——SM4算法
  • 飞云智能波段主图+多空短线决策副图指标,组合操盘技术图文解说