RGB三色LED燈簡介
RGB指的就是三基色光,R=紅色,G=綠色,B=藍色。LED芯片所發出的光一般都是藍光,都是要通過紅 綠 藍這三種顏色的熒光粉去調顏色的。RGB色彩模式是工業界的一種顏色標準,是通過對紅(R)、綠(G)、藍(B)三個顏色通道的變化以及它們相互之間的疊加來得到各式各樣的顏色的,RGB即是代表紅、綠、藍三個通道的顏色,這個標準幾乎包括了人類視力所能感知的所有顏色,是目前運用廣的顏色系統之一。
STM32CubeMX配置
PWM Dimming (脈寬調制)是LED佳的灰度調節方式。PWM說的容易理解些,就是控制LED開和關的時間比例,將開和關的時間比例劃分為若干等級,LED就會顯示出相應數量的灰階。
PWM頻率:剛才說了PWM就是打開和關閉LED的時間比例實現的,但是開關次數不能使太低,起碼要欺騙過眼睛,借鑒電視機的經驗一般大于100Hz,有條件的建議設計在300-500Hz較為合理。在三基色設計應用中通常是通過調節LED電流來達到白平衡和大的期望亮度,通過控制PWM來實現灰階等級。
根據上圖LED接線原理圖,我們配置PB6~PB8為PWM輸出。
設置PWM頻率為500HZ
生成代碼
工程配置完成后,點擊圖中所示菜單按鈕,進行工程名稱、路徑、開發工具等的選擇后,點擊ok。
生成成功后彈出提示,點擊打開工程
如果您的電腦中已安裝所需開發工具,則會自動打開此工程。
源碼
#include "rgb.h"
void RGB_Init(void)
{
HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_1);
HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_2);
HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_3);
}
void Change_RGB_Color(uint16_t red,uint16_t green,uint16_t blue)
{
__HAL_TIM_SetCompare(&htim4, TIM_CHANNEL_1, blue);
__HAL_TIM_SetCompare(&htim4, TIM_CHANNEL_2, green);
__HAL_TIM_SetCompare(&htim4, TIM_CHANNEL_3, red);
}