目录
一、本节介绍
在本课程中,您将使用PWM来控制RGB LED并使其显示各种颜色。
二、材料准备
- 1 * RGB LED
- 3 *电阻(220Ω)
- 1 *面包板
- 1 * Arduino Uno板
- 若干杜邦线
- USB数据线
三、原理讲解
RGB
RGB代表红色,绿色和蓝色的色彩通道,是行业色彩标准。RGB通过改变三个通道并叠加显示各种新颜色,根据统计,可以创建16,777,216种不同的颜色。如果说所显示的颜色并不完全符合自然色,那么几乎肯定不能用肉眼辨别。
红色,绿色和蓝色的三个颜色通道中的每一个具有255个亮度级。当三原色全部为0时,“LED灯”最暗,也就是关闭。当三原色全部为255时,“LED灯”是最亮的。当叠加由三原色发出的光时,颜色将混合。然而,亮度等于所有亮度的总和,混合得越多,LED越亮。这个过程被称为添加剂混合。
在这个实验中,我们还将使用PWM,如果你已经遵循了迄今为止的教训,你已经有了一个基本的了解。这里我们在RGB LED的三个引脚之间输入0到255之间的值,使其显示不同的颜色。
四、实验步骤
步骤1:建立电路
原理图
步骤2:写程序
步骤3:编译代码
步骤4:将程序上传到Arduino Uno板
在这里,您应该首先看到RGB LED闪烁红色,绿色和蓝色,然后红色,橙色,黄色,绿色,蓝色,靛蓝和紫色
本节课代码:
[scu name=”arduino-ide-post” platform=”arduino:avr:uno”]
//*******老鼠的眼睛********
//RGB LED
//RGB LED将首先出现红色,绿色和蓝色,然后红色,橙色,黄色,绿色,蓝色,靛蓝和紫色.
//网址:http://www.qutaojiao.com/category/course
//2017.10.16
/*************************************************************************/
const int redPin = 11; //R 在RGB LED模块连接到数字引脚11
const int greenPin = 10; //G 在RGB LED模块连接到数字引脚10
const int bluePin = 9; // B 在RGB LED模块连接到数字引脚9
/**************************************************************************/
void color (unsigned char red, unsigned char green, unsigned char blue) // 颜色生成函数
{
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
/******************************************************/
void setup()
{
pinMode(redPin, OUTPUT); // 将redPin设置为输出
pinMode(greenPin, OUTPUT); // 将greenPin设置为输出
pinMode(bluePin, OUTPUT); // 将bluePin设置为输出
}
/***************************************************************************/
void loop()
{
// 基本颜色:
color(255, 0, 0); // 转动RGB LED红色
delay(1000); // 延迟1秒
color(0, 255, 0); // 转动RGB LED绿色
delay(1000); // 延迟1秒
color(0, 0, 255); // 转动RGB LED蓝色
delay(1000); // 延迟1秒
// Example blended colors:
color(255, 0, 252); // /转动RGB LED红色
delay(1000); // 延迟1秒
color(237, 109, 0); ///转动RGB LED橙色
delay(1000); // 延迟1秒
color(255, 215, 0); ///转动RGB LED黄色
delay(1000); //延迟1秒
color(34, 139, 34); // /转动RGB LED绿色
delay(1000); // 延迟1秒
color(0, 112, 255); // /转动RGB LED蓝色
delay(1000); // 延迟1秒
color(0, 46, 90); // /转动RGB LED靛蓝色
delay(1000); // 延迟1秒
color(128, 0, 128); ///转动RGB LED紫色
delay(1000); // 延迟1秒
}
/******************************************************/
[/scu]