抖音粉丝群1
『7x24小时有问必答』

引言

在嵌入式开发的世界里,即使只是一颗小小的LED灯,也能成为无尽创意的舞台。

当你的开发板上仅有一颗LED时,如何让它呈现出丰富多彩的闪烁效果?

接下来,让我们通过对RL78/G15的编程实践,为这颗简单的LED注入灵动的“生命力”。

LED工作机制:从“亮”与“灭”说起
1.png
LED(发光二极管)是一种半导体光源,当有电流通过时就会发光。在本次使用的开发板上,我们可以通过控制GPIO引脚的高低电平来实现这一过程:

高电平(HIGH):LED熄灭
2.png
低电平(LOW):LED点亮

LED的工作模式看似简单,但当我们巧妙地融入"时间"这个维度,在程序中控制亮灭的节奏、频率和规律,一颗LED就能呈现出丰富多彩的变化。

快闪与慢闪——节奏的艺术
3.png
1

慢闪模式:沉稳的心跳
慢闪模式是LED最基础的闪烁模式,如同平静而沉稳的心跳,传递着稳定、可靠的信号,非常适合用作状态指示灯,向用户传达“系统正常运行”的信息

2

快闪模式:紧急的警报
当闪烁频率加快,LED瞬间变得“急促”起来,常用于警告、报警或提醒场景。

相同的硬件,不同的节奏,却能传递出截然不同的信息。在程序开发中,我们可以通过调整延时函数的参数,控制LED闪烁节奏,轻松切换LED的“情绪”。

摩斯码——让LED“开口说话”
4.png
如果说闪烁频率帮助LED传达“情绪”,那么摩斯码则是赋予LED“语言”的能力。

摩斯码原理
短闪(点):点亮0.2秒
长闪(划):点亮0.6秒
间隔:熄灭0.2秒(字符内)/0.6秒(字符间)

通过长短闪烁的巧妙组合,LED能够“说出”字母、数字甚至完整的单词。例如,字母"S"由三个短闪(···)组成,字母"O"由三个长闪(---)组成,当它们连在一起,就成了国际通用的求救信号"SOS"(···---···)。

呼吸灯——赋予LED“生命”
5.png
如果说前面的模式是“数字化”的开关控制,那么呼吸灯则是“模拟化”的艺术呈现。

1

什么是呼吸灯?
LED从熄灭状态逐渐转换到最高亮度,再从最高亮度逐渐熄灭,循环往复,如同生物呼吸般自然流畅。

2

技术实现:PWM(脉宽调制)
通过快速开关LED并调整“亮”的时间占比,人眼会产生亮度变化的错觉:

占空比10%:低亮度
占空比50%:中等亮度
占空比90%:最高亮度

呼吸灯常见于高端电子产品的待机指示,它传递的不仅是状态信息,更是一种细腻而优雅的用户体验。

6.png

7.png

相信各位对LED的不同模式的设置原理有了基本的了解,那么如何在开发板上实现这些模式呢?下面让我们一同探索。

开发环境与硬件准备
8.png
1

所用微控制器
RL78/G15
https://www.renesas.cn/zh/products/rl78-g15?queryID=41e2d7a40d04b1f445157d80d24daf7f

2

开发板
RL78/G15 Fast Prototyping Board
https://www.renesas.cn/zh/design-resources/boards-kits/rtk5rlg150c00000bj

3

集成开发环境
e   2  studio v2025-07(瑞萨电子开发)
https://www.renesas.cn/zh/software-tool/e2-studio?queryID=45393453489528bf724cdf10406bf5ad
RL Smart Configurator V1.14.0
https://www.renesas.cn/zh/software-tool/smart-configurator?queryID=17de87a50c6c621cc3cd60ffaf3161f7
Renesas CC-RL v1.15.01
https://www.renesas.cn/zh/software-tool/c-compiler-package-rl78-family-cc-rl

4

硬件连接注意事项:

如上图所示,开发板上的J10、J11和J12跳线帽均需要连接2-3,这样才能使用E2 Lite进行调试。

相关外围功能和用途
9.png
在开发板上有两个LED:LED1和LED2,选取LED1作为控制对象,通过查看原理图可知,LED1对应的RL78/G15输出引脚为P20,LED1正极接VDD,负极接P20,因此,只要控制P20引脚电平高低,就可以控制LED1的亮灭。
10.png

此外,控制LED的快闪慢闪、摩斯码模式、呼吸灯模式需要引入Interval Timer模块和PWM模块。各模块的功能和用途见下表:

外围功能
用途
Interval Timer模块
产生定时中断
PWM模块
生成脉宽调制信号

在Smart Configurator中对这两个模块做如下设置:

设置IT模块Interval value为100ms
11.png

设置PWM模块Cycle value为2ms,选取Channel 3作为slave,占空比设置为90%
12.png

在引脚配置页面,将TO03对应引脚配置为P20
13.png

软件流程
14.png
实现LED不同模式的代码流程如下图所示,首先定义参数“LED_MODE”,通过设置“LED_MODE”,调用不同的函数,实现LED不同模式控制。

“LED_MODE=0”时,调用LED_FAST_FLASH(),LED进入快闪模式
“LED_MODE=1”时,调用LED_FAST_SLOW(),LED进入慢闪模式
“LED_MODE=2”时,调用LED_Morse_SOS(),LED显示“SOS”摩斯码
“LED_MODE=3”时,调用LED_Breathing(),LED进入呼吸灯模式

15.png

下面两个流程图分别对应LED的快闪模式和慢闪模式,在这两个模式下,只需要利用Interval Timer模块,调整LED延时时间即可实现。
16.png
17.png

下方是LED摩斯码和LED呼吸灯的流程图,LED显示摩斯码通过调整延时时间实现,而LED的呼吸灯模式则是通过调整PWM中的占空比实现。

18.png
19.png

工程示例
20.png
按照上述流程,实现LED不同模式的示例工程如下:

工程中使用的函数如下表所示:
函数名称
功能
R_Config_IT_Start()
启动IT模块
R_Config_TAU0_0_Start()
启动PWM模块
EI()
使能中断
r_Config_IT_interrupt(void)
IT中断
wait_ms(uint16_t wait_time)
延时函数
r_Config_TAU0_0_channel3_interrupt
(void)
PWM中断
LED_FAST_FLASH (void)
LED快闪模式
LED_SLOW_FLASH (void)
LED慢闪模式
LED_Morse_SOS (void)
LED闪烁SOS摩斯码
LED_Breathing (void)
LED呼吸灯模式

结尾
21.png
从基础的快慢闪烁,到能"说话"的摩斯码,再到充满生命感的呼吸灯,每一种模式都是逻辑思维与创意表达的结晶。希望你也能从中获得启发,点亮更多创意的“灯泡”。

22.jpg
需要技术支持?
如您在使用瑞萨MCU/MPU产品中有任何问题,可识别下方二维码或复制网址到浏览器中打开,进入瑞萨技术论坛寻找答案或获取在线技术支持。
https://community-ja.renesas.com/zh/forums-groups/mcu-mpu/

1
END
1

推荐阅读

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码