引言
在嵌入式開發的世界里,即使只是一顆小小的LED燈,也能成為無盡創意的舞臺。
當你的開發板上僅有一顆LED時,如何讓它呈現出豐富多彩的閃爍效果?
接下來,讓我們通過對RL78/G15的編程實踐,為這顆簡單的LED注入靈動的“生命力”。
LED工作機制:從“亮”與“滅”說起
LED(發光二極管)是一種半導體光源,當有電流通過時就會發光。在開發板上,我們可以通過控制GPIO引腳的高低電平來實現這一過程:
高電平(HIGH):LED點亮
低電平(LOW):LED熄滅
LED的工作模式看似簡單,但當我們巧妙地融入"時間"這個維度,在程序中控制亮滅的節奏、頻率和規律,一顆LED就能呈現出豐富多彩的變化。
快閃與慢閃——節奏的藝術
1慢閃模式:沉穩的心跳
慢閃模式是LED最基礎的閃爍模式,如同平靜而沉穩的心跳,傳遞著穩定、可靠的信號,非常適合用作狀態指示燈,向用戶傳達“系統正常運行”的信息
2快閃模式:緊急的警報
當閃爍頻率加快,LED瞬間變得“急促”起來,常用于警告、報警或提醒場景。
相同的硬件,不同的節奏,卻能傳遞出截然不同的信息。在程序開發中,我們可以通過調整延時函數的參數,控制LED閃爍節奏,輕松切換LED的“情緒”。
摩斯碼——讓LED“開口說話”
如果說閃爍頻率幫助LED傳達“情緒”,那么摩斯碼則是賦予LED“語言”的能力。
摩斯碼原理
短閃(點):點亮0.2秒
長閃(劃):點亮0.6秒
間隔:熄滅0.2秒(字符內)/0.6秒(字符間)
通過長短閃爍的巧妙組合,LED能夠“說出”字母、數字甚至完整的單詞。例如,字母"S"由三個短閃(···)組成,字母"O"由三個長閃(---)組成,當它們連在一起,就成了國際通用的求救信號"SOS"(···---···)。
呼吸燈——賦予LED“生命”
如果說前面的模式是“數字化”的開關控制,那么呼吸燈則是“模擬化”的藝術呈現。
1什么是呼吸燈?
LED從熄滅狀態逐漸轉換到最高亮度,再從最高亮度逐漸熄滅,循環往復,如同生物呼吸般自然流暢。
2技術實現:PWM(脈寬調制)
通過快速開關LED并調整“亮”的時間占比,人眼會產生亮度變化的錯覺:
占空比10%:低亮度
占空比50%:中等亮度
占空比90%:最高亮度
呼吸燈常見于高端電子產品的待機指示,它傳遞的不僅是狀態信息,更是一種細膩而優雅的用戶體驗。
相信各位對LED的不同模式的設置原理有了基本的了解,那么如何在開發板上實現這些模式呢?下面讓我們一同探索。
開發環境與硬件準備
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集成開發環境
e2studio 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進行調試。
相關外圍功能和用途
在開發板上有兩個LED:LED1和LED2,選取LED1作為控制對象,通過查看原理圖可知,LED1對應的RL78/G15輸出引腳為P20,LED1正極接VDD,負極接P20,因此,只要控制P20引腳電平高低,就可以控制LED1的亮滅。

此外,控制LED的快閃慢閃、摩斯碼模式、呼吸燈模式需要引入Interval Timer模塊和PWM模塊。各模塊的功能和用途見下表:
| 外圍功能 | 用途 |
| Interval Timer模塊 | 產生定時中斷 |
| PWM模塊 | 生成脈寬調制信號 |
在Smart Configurator中對這兩個模塊做如下設置:
設置IT模塊Interval value為100ms

設置PWM模塊Cycle value為2ms,選取Channel 3作為slave,占空比設置為90%

在引腳配置頁面,將TO03對應引腳配置為P20

軟件流程
實現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進入呼吸燈模式

下面兩個流程圖分別對應LED的快閃模式和慢閃模式,在這兩個模式下,只需要利用Interval Timer模塊,調整LED延時時間即可實現。


下方是LED摩斯碼和LED呼吸燈的流程圖,LED顯示摩斯碼通過調整延時時間實現,而LED的呼吸燈模式則是通過調整PWM中的占空比實現。


工程示例
按照上述流程,實現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呼吸燈模式 |
結尾
從基礎的快慢閃爍,到能"說話"的摩斯碼,再到充滿生命感的呼吸燈,每一種模式都是邏輯思維與創意表達的結晶。希望你也能從中獲得啟發,點亮更多創意的“燈泡”。
-
led
+關注
關注
243文章
24594瀏覽量
690788 -
嵌入式
+關注
關注
5198文章
20442瀏覽量
333962 -
引腳
+關注
關注
16文章
2111瀏覽量
55680 -
GPIO
+關注
關注
16文章
1328瀏覽量
56215
原文標題:一顆LED也能“翻”出新花樣
文章出處:【微信號:瑞薩嵌入式小百科,微信公眾號:瑞薩嵌入式小百科】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
瑞薩RL78/G15針對8位MCU應用進行的優化
留言有獎 | RL78/G15新品解讀【高精度、小空間、高溫使用環境的理想選擇】
一款全新通用多功能微控制器(MCU)—RL78/G15
新品開箱 | RL78/G15開發板開箱與開發環境搭建
新品開箱 | RL78/G15開發板 Step by Step點燈
RL78/G15組和RL78/G16組 瑞薩Flash示例程序01型SC版本應用說明
如何在瑞薩RL78/G15開發板實現LED的工作模式
評論