FRDM-MCXN947开发板之RGB灯
一、背景
- RGB LED:通过红、绿、蓝三种颜色组合发光的LED,可以理解由三个不同发光属性的LED组成,这个是LCD平板显示原理的基础,一个LED相当于屏幕上面的一个像素
- FRDM-MCXN947集成了一块RGB LED,它由三个GPIO口驱动,这里由于GPIO的电平只能是0或者1,所以这里的RGB LED并不能像LCD的单个像素那样合成256x256x256种颜色
二、颜色表
三原色合成颜色关系表如图所示
颜色组合关系表
颜色 | Red | Green | Blue | 英文名 |
---|---|---|---|---|
红 | 1 | 0 | 0 | Red |
绿 | 0 | 1 | 0 | Green |
蓝 | 0 | 0 | 1 | Blue |
品红 | 1 | 0 | 1 | Pink |
黄 | 1 | 1 | 0 | Yellow |
青 | 0 | 1 | 1 | Cyan |
白 | 1 | 1 | 1 | White |
三、电路
电路引脚对应关系: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)
{
// Red
rt_pin_write(LEDR_PIN, PIN_LOW);
rt_pin_write(LEDG_PIN, PIN_HIGH);
rt_pin_write(LEDB_PIN, PIN_HIGH);
rt_thread_mdelay(delay);
// Green
rt_pin_write(LEDR_PIN, PIN_HIGH);
rt_pin_write(LEDG_PIN, PIN_LOW);
rt_pin_write(LEDB_PIN, PIN_HIGH);
rt_thread_mdelay(delay);
// Blue
rt_pin_write(LEDR_PIN, PIN_HIGH);
rt_pin_write(LEDG_PIN, PIN_HIGH);
rt_pin_write(LEDB_PIN, PIN_LOW);
rt_thread_mdelay(delay);
// Yellow
rt_pin_write(LEDR_PIN, PIN_LOW);
rt_pin_write(LEDG_PIN, PIN_LOW);
rt_pin_write(LEDB_PIN, PIN_HIGH);
rt_thread_mdelay(delay);
// Pink
rt_pin_write(LEDR_PIN, PIN_LOW);
rt_pin_write(LEDG_PIN, PIN_HIGH);
rt_pin_write(LEDB_PIN, PIN_LOW);
rt_thread_mdelay(delay);
// Cyan
rt_pin_write(LEDR_PIN, PIN_HIGH);
rt_pin_write(LEDG_PIN, PIN_LOW);
rt_pin_write(LEDB_PIN, PIN_LOW);
rt_thread_mdelay(delay);
// White
rt_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:青色
FRDM-MCXN947开发板之RGB灯的更多相关文章
- 基于uFUN开发板的RGB调色板
前言 使用uFUN开发板配合Qt上位机,实现任意颜色的混合,Qt上位机下发RGB数值,范围0-255,uFUN开发板进行解析,然后输出不同占空比的PWM,从而实现通过RGB三原色调制出任意颜色. Qt ...
- RK3399 友善NanoPC-T4开发板使用sysfs方法控制status LED状态灯-【申嵌视频-RK3399篇】
实验1:sysfs 操作方法控制NanoPC-T4开发板上LED灯 (status LED状态灯:GPIO0_B5/LED1_OUT)root@NanoPC-T4: cd /sys/class/led ...
- 单片机学习(二)开发板LED灯的控制
目录 开发板上LED灯相关的电路图 点灯 LED闪烁 LED流水灯 其他效果 灯光二进制计数器 进阶版流水灯 开发板上LED灯相关的电路图 这是P2相关7个引脚的电路图,在默认情况下它是直接接着VCC ...
- 千呼万唤始出来——uFUN开发板2.0开箱评测
前言 今年3月,我参与了面包板社区组织的第一批uFUN开发板评测活动,并有幸能获得试用机会,那是我第一次了解到uFUN这个项目及背后的故事,4月份,uFUN 2.0版本来了,收到了张工送的一块样板,后 ...
- 1-51单片机WIFI学习(开发板介绍)
源码链接都在后面 前面的都是介绍单独的WIFI,没有和单片机结合起来,因为做项目很少会只用WIFI模块.大多数都是WIFI模块作为中转数据的桥梁,单片机负责 数据采集,控制等等,所以自己准备出一套51 ...
- 1-学习GPRS_Air202(Air202开发板介绍)
记得自己第一次实现远程通信是在学校里用SIM900A实现的,随着WIFI模块的普及自己就开始用WIFI模块了,当然WIFI模块已经用的很... WIFI模块要想实现远程控制必须连接路由器,其实在做王哥 ...
- 基于uFUN开发板和扩展板的联网校准时钟
项目概述 上周在uFUN试用群里看到管理员说试用活动快结束了,要抓紧完成评测总结,看大家的评测总结也都写了,我也不能落后啊!正好最近做的扩展板到手了,于是赶紧进行调试,做了一个不用校准的时钟,时钟这种 ...
- NUCLEO-8L152开发板中文应用笔记整理集合
[AN5182]基于Adafruit TFT Shield与STM8 Nucleo-64板的图片查看器:https://www.yiboard.com/thread-962-1-1.html 本应用笔 ...
- 迅为-IMX6UL开发板丨双网口丨双CAN总线丨4路USB HOST丨2路串口、6路插座引出,共8路串口丨1路RGB信号丨2路LVDS信号
迅为iMX6UL开发板多路串口开发平台迅为i.MX 6UL开发板基于ARM Cortex-A7内核,主频高达528 MHz,内存:512MDDR3存储:8G EMMC,支持2路CAN,2路百兆以太网, ...
- 在 S5PV210 的 开发板上 点亮 一个 LED 灯
参考学习教程:周立功嵌入式Linux开发教程-(上册) 材料:首先 准备一个 安装好 Linux 的 开发板 使用 xshell 工具 连接 开发板 ,winscp 工具 连接 开发板 , 准 ...
随机推荐
- 面试官:说一说CyclicBarrier的妙用!我:这个没用过
写在开头 面试官:同学,AQS的原理知道吗? 我:学过一点,抽象队列同步器,Java中很多同步工具都是基于它的... 面试官:好的,那其中CyclicBarrier学过吗?讲一讲它的妙用吧 我:啊,这 ...
- ECharts海量数据渲染解决卡顿的4种方式
场景 周五进行需求评审的时候: 出现了一个图表,本身一个图表本没有什么稀奇的: 可是产品经理在图表的上的备注,让我觉得这个事情并不简单: 那个图表的时间跨度可以是月,年,而且时间间隔很短: 这让我意识 ...
- 400倍加速, PolarDB HTAP实时数据分析技术解密
简介: PolarDB MySQL是因云而生的一个数据库系统, 除了云上OLTP场景,大量客户也对PolarDB提出了实时数据分析的性能需求.对此PolarDB技术团队提出了In-Memory Col ...
- 庖丁解InnoDB之UNDO LOG
简介: Undo Log是InnoDB十分重要的组成部分,它的作用横贯InnoDB中两个最主要的部分,并发控制(Concurrency Control)和故障恢复(Crash Recovery),I ...
- Taurus.MVC 微服务框架 入门开发教程:项目集成:7、微服务间的调用方式(调整):引用程序集及代码下载(新增)
前言: 今天补充一下 Taurus.MVC 微服务教程,介绍一下微服务中针对RPC方面调整或新增的功能. 之前系列文章目录: Taurus.MVC 微服务框架 入门开发教程:项目集成:1.服务端:注册 ...
- 16.prometheus监控总结
一.监控流程总结 1.需要在被监控的服务器上安装xx_exporter来收集数据(可以是源码安装,最好用docker.docker-compose) 2.添加Prometheus配置,去收集(xx_e ...
- netcore热插拔dll
项目中有有些场景用到反射挺多的,用到了反射就离不开dll的加载.此demo适用于通过反射dll运行项目中加载和删除,不影响项目. ConsoleApp: 1 using AppClassLibrary ...
- NetCore开发第一步 Log4Net日志引入
1.新建一个带mvc模板的项目: 2.引入Microsoft.Extensions.Logging.Log4Net.AspNetCore包,不要引入错了. 引入后后包的结果如下: 3.Startup类 ...
- Tomcat+web测试环境配置
一.JDK安装完成 二.Tomcat安装配置 1:官网下载tomact,地址为:https://tomcat.apache.org/download-80.cgi 2:将下载后的文件解压 3:进入To ...
- java后台@RequestBody和@RequestParam
RequestBody 接收的是请求体里面(body)的数据 RequestParam接收的是key-value里面的参数,所以它会被切割进行处理从而可以是普通元素.数组.集合.对象等接收 get-- ...