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

RGB红绿灯——Arduino

光的三原色

        牛顿发现光的色散奥秘之后,进一步计算发现:七种色光中只有红、绿、蓝三种色光无法被分解,而其他四种颜色的光均可由这三种色光以不同比例相合而成。于是红、绿、蓝被称为“三原色光”或“光的三原色”。后经证实:红、绿、蓝这三种颜色的组合,几乎能形成所有的颜色。

        组合   红+绿=黄;   绿+蓝=青;   红+蓝=品红;   红+绿+蓝=白

RGB彩灯

RGB彩灯内部原理

                  共阳极                                                     共阴极

              

共阴极彩灯电路接线

RGB红绿灯

功能需求:红灯亮7秒,绿灯亮7秒,黄灯闪烁3秒(闪烁间隔为500毫秒)。

void setup(){}void loop(){analogWrite(9,255);analogWrite(10,0);analogWrite(11,0);delay(7000);analogWrite(9,0);analogWrite(10,255);analogWrite(11,0);delay(7000);for (int i = 1; i <= 3; i = i + (1)) {analogWrite(9,255);analogWrite(10,255);analogWrite(11,0);delay(500);analogWrite(9,0);analogWrite(10,0);analogWrite(11,0);delay(500);}}

用3个电位器,对RGB彩灯进行调色。

volatile int dwq1;
volatile int dwq2;
volatile int dwq3;void setup(){dwq1 = 0;dwq2 = 0;dwq3 = 0;
}void loop(){dwq1 = (map(analogRead(A1), 0, 1023, 0, 255));dwq2 = (map(analogRead(A2), 0, 1023, 0, 255));dwq3 = (map(analogRead(A3), 0, 1023, 0, 255));analogWrite(9,dwq1);analogWrite(10,dwq2);analogWrite(11,dwq3);}

        这段代码是一个基于Arduino的简单示例,用于实时处理来自三个ADC输入(A1, A2, A3)的模拟信号,并将其转换为0到255范围内的数字值,再通过PWM控制RGB三色LED灯(连接到数字引脚9、10和11)。`volatile`关键字在此处的作用非常重要,因为它确保了在多任务环境中,CPU不会优化对这三个变量(dwq1, dwq2, dwq3)的访问,防止可能出现的数据竞争(data race)问题。

以下是代码逐行解释:

1. `volatile int dwq1;`,`volatile int dwq2;` 和 `volatile int dwq3;`:声明了三个名为`dwq1`、`dwq2`和`dwq3`的整型变量,因为它们存储的是从ADC读取的结果,这些值可能会随着外部输入的变化而随时改变,所以标记为volatile,表示编译器在每次读取时都需要重新检查该变量的值。

2. 在`setup()`函数中:
   - `dwq1 = 0;`:初始化`dwq1`为0,相当于清零准备接收ADC的读数。
   - 同理,`dwq2`和`dwq3`也被初始化为0。
   
3. 在`loop()`函数中:
   - `dwq1 = (map(analogRead(A1), 0, 1023, 0, 255));`: 从ADC引脚A1获取模拟电压值,映射到0到255的整数值。`map()`函数用于线性变换,将原范围的值缩放到目标范围。
   - 类似地,`dwq2`和`dwq3`分别对应A2和A3的ADC读数。
   
4. 最后,通过`analogWrite(9, dwq1);`、`analogWrite(10, dwq2);`和`analogWrite(11, dwq3);`将每个`dwq`变量的值分配给RGB LED的PWM输出,控制LED的颜色强度。

相关文章:

RGB红绿灯——Arduino

光的三原色 牛顿发现光的色散奥秘之后&#xff0c;进一步计算发现&#xff1a;七种色光中只有红、绿、蓝三种色光无法被分解&#xff0c;而其他四种颜色的光均可由这三种色光以不同比例相合而成。于是红、绿、蓝被称为“三原色光”或“光的三原色”。后经证实&#xff1a;红、绿…...

浅谈用二分和三分法解决问题(c++)

目录 问题引入[NOIP2001 提高组] 一元三次方程求解题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示思路分析AC代码 思考关于二分和三分例题讲解进击的奶牛题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 思路AC代码 平均数题目描述输入格式输出格式样例 …...

Cocos Creator2D游戏开发(9)-飞机大战(7)-爆炸效果

这个爆炸效果我卡在这里好长时间,视频反复的看, 然后把代码反复的测试,修改,终于给弄出来 视频中这段,作者也是修改了好几次, 跟着做也走了不少弯路; 最后反正弄出来了; 有几个坑; ① 动画体创建位置是enemy_prefab ② enemy_prefab预制体下不用放动画就行; ③ 代码中引用Anima…...

终于有人把华为认证全部说清楚了

在信息技术领域&#xff0c;华为认证好比一座金字招牌&#xff0c;吸引着无数技术专业人士的青睐。 市场上关于华为认证的声音纷繁复杂&#xff0c;存在不少争议&#xff0c;让人难以辨别真伪。 今天就来好好讲讲华为认证&#xff0c;从头到尾都帮你盘盘清楚。 01 华为认证是…...

【知识】pytorch中的pinned memory和pageable memory

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 概念简介 pytorch用法 速度测试 反直觉情况 概念简介 默认情况下&#xff0c;主机 &#xff08;CPU&#xff09; 数据分配是可分页的。GPU 无…...

【系统架构设计】数据库系统(五)

数据库系统&#xff08;五&#xff09; 数据库模式与范式数据库设计备份与恢复分布式数据库系统数据仓库数据挖掘NoSQL大数据 数据库模式与范式 数据库设计 备份与恢复 分布式数据库系统 数据仓库 数据挖掘 对数据挖掘技术进行支持的三种基础技术已经发展成熟&#xff0c…...

如何对人工智能系统进行测试|要点,方法及流程

当今社会&#xff0c;人工智能发展非常快。现在人工智能的发展已经渗透到了我们生活的方方面面&#xff0c;自动驾驶、或者我们手机里经常用到的一些应用都或多或少涉及到了一些人工智能的功能&#xff0c;比如说美图秀秀、新闻推荐、机器翻译以及个性化的购物推荐等等都涉及到…...

CVE-2023-37569~文件上传【春秋云境靶场渗透】

# 今天我们拿下CVE-2023-37569这个文件上传漏洞# 经过简单账号密码猜测 账号&#xff1a;admin 密码&#xff1a;password# 找到了文件上传的地方# 我们直接给它上传一句话木马并发现上传成功# 上传好木马后&#xff0c;右键上传的木马打开发现上传木马页面# 直接使用蚁剑进行连…...

MySQL简介 数据库管理与表管理

文章目录 1 MySQL的优势2 MySQL数据类型1 数字类型2 日期和时间类型3 字符串类型 3 数据库管理4 数据表管理参考 1 MySQL的优势 性能优化&#xff1a;通过优化存储引擎&#xff08;InnoDB&#xff0c;MyISAM&#xff09;和查询优化。解决大规模数据处理和查询优化开源&#xf…...

PHP 函数性能优化的技巧是什么?

本文由 ChatMoney团队出品 本文将详细介绍 PHP 函数性能优化的技巧。通过分析 PHP 函数的执行过程和性能瓶颈&#xff0c;提供一系列实用的优化方法&#xff0c;并结合代码示例&#xff0c;帮助读者提升 PHP 代码的执行效率。文章内容将涵盖变量作用域、递归算法、循环优化、内…...

小程序支付(前端)

前端只需要调用 wx.requestPayment(Object object) 文档 参考代码 const openId wx.getStorageSync(openId)payOrder({payId: this.data.resData.payId,openId}).then((res) > {console.log(2222, res);try {const data JSON.parse(res.res)console.log(22, data)const {…...

开发一个自己的VSCode插件

1、前言 对于一个前端开发者来说&#xff0c;开发工具&#xff0c;最常用的应该就是VSCode了&#xff0c;因为它免费&#xff0c;速度快&#xff0c;提供了丰富了插件等优点&#xff0c;使得越来越多的前端开发者都来使用它了&#xff0c;在开发的时候如果有丰富的插件提供支持…...

Milvus 向量数据库进阶系列丨构建 RAG 多租户/多用户系统 (上)

本系列文章介绍 在和社区小伙伴们交流的过程中&#xff0c;我们发现大家最关心的问题从来不是某个具体的功能如何使用&#xff0c;而是面对一个具体的实战场景时&#xff0c;如何选择合适的向量数据库解决方案或最优的功能组合。在 “Milvus 向量数据库进阶” 这个系列文章中&…...

前缀和(更新中)

目录 1.寻找数组的中心下标 2.除自身以外数组的乘积 3.和为k的子数组 4.可被k整除的子数组 5.连续数组 1.寻找数组的中心下标 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int pivotIndex(vector<int>& nums) {int size nums.size();v…...

记录一次单例模式乱用带来的危害。

项目场景&#xff1a; 我们在接受到短信网关下发的回执之后&#xff0c;需要将回执内容也下发给我们的下游服务。为了防止下游响应超时&#xff0c;我们需要将超时的信息存放到Redis中然后进行补发操作。 问题描述 在使用Redis进行数据存储的时候&#xff0c;报NPE问题。 原因…...

外卖项目day14(day11)---数据统计

Apache ECharts 大家可以看我这篇文章&#xff1a; Apache ECharts-CSDN博客 营业额统计 产品原型 接口设计 新建admin/ReportController /*** 数据统计相关接口*/ RestController RequestMapping("/admin/report") Api(tags "数据统计相关接口") Slf…...

养猫科普!牙口不好的猫咪怎么选粮?好吃易消化主食罐推荐

我家的猫猫已经九岁了&#xff0c;已经是一位老奶奶了&#xff0c;她的牙口不太好。对于她来说&#xff0c;膨化猫粮过于硬&#xff0c;很难咀嚼&#xff0c;所以我为她准备了质地柔软的主食罐头。哪种主食罐头更适合牙口不好的猫咪呢&#xff1f;下面&#xff0c;我就来分享一…...

力扣刷题之3143.正方形中的最多点数

题干描述 给你一个二维数组 points 和一个字符串 s &#xff0c;其中 points[i] 表示第 i 个点的坐标&#xff0c;s[i] 表示第 i 个点的 标签 。 如果一个正方形的中心在 (0, 0) &#xff0c;所有边都平行于坐标轴&#xff0c;且正方形内 不 存在标签相同的两个点&#xff0c…...

【更新2022】省级经济高质量发展指标体系测度 含代码 2000-2022

重磅更新&#xff01;【章汕】制作“省级经济高质量发展指标体系测度 含代码”&#xff0c;市面上有这个版本的数据&#xff0c;但其内容非常不全面&#xff0c;个别指标有误&#xff0c;没有stata和代码&#xff0c;即使有代码小白也很容易报错&#xff1b;没有权重、宽面板等…...

缓冲流练习

练习1&#xff1a;拷贝文件 四种方式拷贝文件&#xff0c;并统计各自用时。 字节流的基本流&#xff1a;一次读写一个字节 字节流的基本流&#xff1a;一次读写一个字节数组 字节缓冲流&#xff1a;一次读写一个字节 字节缓冲流&#xff1a;一次读写一个字节数组 这里我只使用了…...

实测Qwen3-4B:256K超长上下文,处理长文档、写长文真实案例

实测Qwen3-4B&#xff1a;256K超长上下文&#xff0c;处理长文档、写长文真实案例 1. 引言&#xff1a;为什么关注长上下文能力 在日常工作和创作中&#xff0c;我们经常遇到需要处理超长文档的场景&#xff1a;分析上百页的PDF报告、阅读整本电子书、编写长篇技术文档等。传…...

MiniCPM-V-2_6 Ubuntu 20.04一键部署教程:从安装到运行

MiniCPM-V-2_6 Ubuntu 20.04一键部署教程&#xff1a;从安装到运行 想试试那个能看懂图片还能跟你聊天的多模态大模型MiniCPM-V-2_6吗&#xff1f;很多朋友在第一步——部署上就被卡住了&#xff0c;不是环境依赖搞不定&#xff0c;就是权限问题报错&#xff0c;折腾半天模型还…...

千问3.5-2B在办公提效场景:会议白板照片文字提取+要点总结实战

千问3.5-2B在办公提效场景&#xff1a;会议白板照片文字提取要点总结实战 1. 办公场景的痛点与解决方案 1.1 会议记录的传统困境 每次开完会&#xff0c;最让人头疼的就是整理会议记录了。特别是那些在白板上写满讨论要点的会议&#xff0c;你需要&#xff1a; 对着白板照片…...

实时行情系统设计:从协议选择到高可用架构,再到数据源选型

一、核心问题及解决方案&#xff08;按踩坑频率排序&#xff09; 问题 1&#xff1a;误删他人持有锁——最基础也最易犯的漏洞 成因&#xff1a;释放锁时未做身份校验&#xff0c;直接执行 DEL 命令删除键。典型场景&#xff1a;服务 A 持有锁后&#xff0c;业务逻辑耗时超过锁…...

[语音转文字工具] AsrTools:让音频转写效率提升300%的开源解决方案

[语音转文字工具] AsrTools&#xff1a;让音频转写效率提升300%的开源解决方案 【免费下载链接】AsrTools ✨ AsrTools: Smart Voice-to-Text Tool | Efficient Batch Processing | User-Friendly Interface | No GPU Required | Supports SRT/TXT Output | Turn your audio in…...

Qwen3.5-9B效果展示:中英混合输入+代码注释生成高质量输出

Qwen3.5-9B效果展示&#xff1a;中英混合输入代码注释生成高质量输出 1. 模型核心能力概览 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型&#xff0c;在多个领域展现出卓越的能力。这个模型特别适合处理复杂的技术任务&#xff0c;尤其是那些需要同时理解自然语言和编程语言的…...

Graphormer效果对比评测:vs GCN、GAT、GIN在分子回归任务上的表现

Graphormer效果对比评测&#xff1a;vs GCN、GAT、GIN在分子回归任务上的表现 1. 引言 在药物发现和材料科学领域&#xff0c;准确预测分子属性是一个关键挑战。传统方法依赖昂贵的实验或复杂的量子化学计算&#xff0c;而图神经网络(GNN)提供了一种更高效的替代方案。本文将…...

Mysql 02:集合函数(聚合函数)查询全解——COUNT/SUM/AVG/MAX/MIN 实战指南

在 MySQL 中&#xff0c;集合函数&#xff08;也叫聚合函数&#xff09; 是对一组数据进行统计计算的核心工具&#xff0c;常用于数据汇总、报表生成、分组统计等场景。本文将围绕图片中的 5 大核心集合函数&#xff0c;从语法、用法、代码示例三个维度&#xff0c;带你彻底掌握…...

BT33F双基二极管的基本特性

简 介&#xff1a; 本文测试了BT33F双基二极管的特性&#xff0c;发现其发射极对两个基极呈现不同导通电压&#xff08;0.86V和1.6V&#xff09;&#xff0c;B1、B2间电阻约13KΩ。实验表明&#xff0c;只有当B1接地、B2接5V电源时&#xff0c;电路才能产生46Hz的振荡信号&…...

Spring Boot pom.xml 属性配置 <properties> 没有统一管理 lombok 依赖版本,这里可以正常使用 ${lombok.version}

问题&#xff1a;<!-- 属性配置&#xff0c;统一管理依赖版本 --><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!-- MapStruct 版本 --><org.mapstruct.version>1.6.3</org.mapstruct.version>…...