FRDM-MCXN947开发板之RGB灯

一、背景

  • RGB LED:通过红、绿、蓝三种颜色组合发光的LED,可以理解由三个不同发光属性的LED组成,这个是LCD平板显示原理的基础,一个LED相当于屏幕上面的一个像素

在这里插入图片描述

  • FRDM-MCXN947集成了一块RGB LED,它由三个GPIO口驱动,这里由于GPIO的电平只能是0或者1,所以这里的RGB LED并不能像LCD的单个像素那样合成256x256x256种颜色

在这里插入图片描述

二、颜色表

三原色合成颜色关系表如图所示

在这里插入图片描述

颜色组合关系表

颜色RedGreenBlue英文名
100Red
绿010Green
001Blue
品红101Pink
110Yellow
011Cyan
111White

三、电路

电路引脚对应关系:R -> P0_10,G -> P0_27,B -> P1_2

在这里插入图片描述

驱动方式:上拉接VCC,通过灌电流方式接入GPIO,低电平发光

在这里插入图片描述

四、程序设计

初始化RGB LED

#include "drv_pin.h"#define LEDR_PIN        ((0*32)+10)
#define LEDG_PIN        ((0*32)+27)
#define LEDB_PIN        ((1*32)+2)......{rt_pin_mode(LEDR_PIN, PIN_MODE_OUTPUT);  /* Set GPIO as Output */rt_pin_mode(LEDG_PIN, PIN_MODE_OUTPUT);  /* Set GPIO as Output */rt_pin_mode(LEDB_PIN, PIN_MODE_OUTPUT);  /* Set GPIO as Output */
}

动态展示各种混合颜色

while (1)
{// Redrt_pin_write(LEDR_PIN, PIN_LOW);  rt_pin_write(LEDG_PIN, PIN_HIGH);   rt_pin_write(LEDB_PIN, PIN_HIGH); rt_thread_mdelay(delay);               // Greenrt_pin_write(LEDR_PIN, PIN_HIGH); rt_pin_write(LEDG_PIN, PIN_LOW);   rt_pin_write(LEDB_PIN, PIN_HIGH);    rt_thread_mdelay(delay);            // Bluert_pin_write(LEDR_PIN, PIN_HIGH);   rt_pin_write(LEDG_PIN, PIN_HIGH);   rt_pin_write(LEDB_PIN, PIN_LOW);   rt_thread_mdelay(delay);              // Yellowrt_pin_write(LEDR_PIN, PIN_LOW);    rt_pin_write(LEDG_PIN, PIN_LOW);   rt_pin_write(LEDB_PIN, PIN_HIGH);   rt_thread_mdelay(delay);            // Pinkrt_pin_write(LEDR_PIN, PIN_LOW);   rt_pin_write(LEDG_PIN, PIN_HIGH);   rt_pin_write(LEDB_PIN, PIN_LOW);   rt_thread_mdelay(delay);             // Cyanrt_pin_write(LEDR_PIN, PIN_HIGH);  rt_pin_write(LEDG_PIN, PIN_LOW);   rt_pin_write(LEDB_PIN, PIN_LOW);    rt_thread_mdelay(delay);               // Whitert_pin_write(LEDR_PIN, PIN_LOW); rt_pin_write(LEDG_PIN, PIN_LOW);   rt_pin_write(LEDB_PIN, PIN_LOW);   rt_thread_mdelay(delay);               }

五、总结

纸上得来终觉浅,绝知此事要躬行,曾经在大学学过LCD平板显示原理,知道像素的显示原理,知道三原色,但一直没有机会实操,我也不大清楚青色(cyan)居然由绿色(green)和蓝色(blue)合成的

六、术语

  • RGB:red green blue,红色、绿色、蓝色三种颜色的通称
  • LED:light emittiing diode,发光二极管
  • LCD:Liquid Crystal Display,液晶显示
  • pink:品红、粉红
  • cyan:青色

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

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

相关文章

从零开始写一个RTSP服务器(一)RTSP协议讲解

目录 前言一、什么是RTSP协议?二、RTSP协议详解2.1 RTSP数据格式2.2 RTSP请求的常用方法2.3 RTSP交互过程2.4 sdp格式 三、RTP协议3.1 RTP包格式3.2 RTP OVER TCP 四、RTCP 前言 为什么要写这个系列? 因为我自己在学习rtsp协议想自己从零写一个rtsp服务…

【hive】lateral view侧视图

文档地址:https://cwiki.apache.org/confluence/display/Hive/LanguageManualLateralView 1.介绍2.语法3.code demo1)单重侧视图2)多重侧视图3)tips:lateral view outer 1.介绍 lateral view也叫侧视图,属…

【网站项目】农产品自主供销小程序

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

【前端】layui table表格勾选事件,以及常见模块

欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是《前端》系列文章,每篇文章将以博主理解的角度展开讲解, 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 表格勾选事…

【自研网关】过滤器链设计

🌈Yu-Gateway::基于 Netty 构建的自研 API 网关,采用 Java 原生实现,整合 Nacos 作为注册配置中心。其设计目标是为微服务架构提供高性能、可扩展的统一入口和基础设施,承载请求路由、安全控制、流量治理等…

day9 | 栈与队列 part-1 (Go) | 232 用栈实现队列、225 用队列实现栈

今日任务 栈与队列的理论基础 (介绍:代码随想录)232 用栈实现队列(题目: . - 力扣(LeetCode))225 用队列实现栈 (题目: . - 力扣(LeetCode) ) 栈与队列的理论基础 栈 : 先进后出 队列: 后进先出 老师给的讲解:代码随想录 …

基于Pytorch实现图像分类——基于jupyter

分类任务 网络基本构建与训练方法,常用函数解torch.nn.functional模块nn.Module模块 MNIST数据集下载 from pathlib import Path import requestsDATA_PATH Path("data") PATH DATA_PATH / "mnist"PATH.mkdir(parentsTrue, exist_okTrue)U…

CSS核心样式-03-浮动+背景属性

目录 五、标准文档流 1. 微观现象 ①空白折叠现象 ②文字类的元素如果排在一行会出现一种高低不齐、底边对齐效果 ③自动换行 2. 元素等级 ①块级元素 ②行内元素 ③ 行内块元素 六、显示模式 display display四个属性值 脱离标准流 七、浮动属性(脱标…

超越传统Lambda函数:深入解析Out-of-line Lambdas的奇妙之处

超越传统函数:深入解析线外 Lambda函数 的奇妙之处 一、背景二、lambda 的捕获三、可能出现的警告四、lambda的广义捕获五、为每种情况进行重载六、总结 一、背景 Out-of-line Lambdas翻译过来就是“线外Lambda函数”或“离线Lambda函数”。Lambda 是使代码更具表现…

【opencv】示例-peopledetect.cpp HOG(方向梯度直方图)描述子和SVM(支持向量机)进行行人检测...

// 包含OpenCV项目所需的objdetect模块头文件 #include <opencv2/objdetect.hpp> // 包含OpenCV项目所需的highgui模块头文件&#xff0c;用于图像的显示和简单操作 #include <opencv2/highgui.hpp> // 包含OpenCV项目所需的imgproc模块头文件&#xff0c;用于图像…

在vue中配置样式 max-width:100px时,发现和width:100px一样没有对应的递增到最大宽度的效果?怎么回事?怎么解决?

原因&#xff1a; 可能时vue的样式大部分和display相关&#xff0c;有很多的联系&#xff0c;导致不生效 解决&#xff1a; 对设置max-width样式的元素设置display:inline-block;属性&#xff0c;即可生效&#xff0c;实现随着子元素的扩展而扩展并增加固定到最大的宽度

视频批量高效剪辑,支持将视频文件转换为音频文件,轻松掌握视频格式

在数字化时代&#xff0c;视频内容日益丰富&#xff0c;管理和编辑这些视频变得愈发重要。然而&#xff0c;传统的视频剪辑软件往往操作复杂&#xff0c;难以满足高效批量处理的需求。现在&#xff0c;一款全新的视频批量剪辑神器应运而生&#xff0c;它支持将视频文件一键转换…