智能wifi小车-RGB三色LED灯驱动

 2016-05-20 11:46  69人

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);

}

分享到: