Arduino(六)(RGB)

前提介绍:

        RGB是一种色彩模式,它基于红色(Red)、绿色(Green)和蓝色(Blue)三种基本颜色的不同组合来产生各种颜色。在计算机图形学中,RGB 是一种非常重要的颜色系统,因为大多数显示器、投影仪和其他视觉输出设备都是基于 RGB 颜色空间来工作的。

         在 RGB 系统中,每种颜色(红、绿、蓝)都有一个从 0(无该颜色)到 255(完全该颜色)的数值范围(在 8 位系统中)。这意味着 RGB 颜色空间可以表示超过 1600 万种不同的颜色(因为 256 x 256 x 256 = 16,777,216)。

一、目标实现:

        使用Arduino编程,使能根据RGB灯能够依次缓慢变换出红蓝绿黄青紫六种颜色。

二、前期准备:     

        软件准备:Arduino 18.8

        硬件准备:Arduino开发板,面包板,杜邦线,1kΩ电阻,RGB灯。

三、接线:

        如下图:

四、编写程序:

#define TIME 1000

int RedPin = 11;
int BluePin = 10;
int GreenPin = 9;
int i = 0;
static void rgb_init(bool state);
static void color(unsigned char red, unsigned char blue, unsigned char green);

void setup() {
  rgb_init(true);
}

void loop() {
  for (i = 0; i <= 255; i++)
  {
    color(i, 0, 0);
    delay(1);    
  }
  for (i = 255; i >= 0; i--)
  {
    color(i, 0, 0);
    delay(1);    
  }
  
  for (i = 0; i <= 255; i++)
  {
    color(0, i, 0);
    delay(1);
  }
  for (i = 255; i >= 0; i--)
  {
    color(0, i, 0);
    delay(1);    
  }
  
    for (i = 0; i <= 255; i++)
  {
    color(0, 0, i);
    delay(1);
  }
  for (i = 255; i >= 0; i--)
  {
    color(0, 0, i);
    delay(1);    
  }
  
  for (i = 0; i <= 255; i++)
  {
    color(i, 0, i);
    delay(1);
  }
  for (i = 255; i >= 0; i--)
  {
    color(i, 0, i);
    delay(1);    
  }
  

  for (i = 0; i <= 255; i++)
  {
    color(0, i, i);
    delay(1);
  }
    for (i = 255; i >= 0; i--)
  {
    color(0, i, i);
    delay(1);    
  }

  
  for (i = 0; i <= 255; i++)
  {
    color(i, i, 0);
    delay(1);
  }
    for (i = 255; i >= 0; i--)
  {
    color(i, i, 0);
    delay(1);    
  }
  
}

static void color(unsigned char red, unsigned char blue, unsigned char green)
{
  analogWrite(RedPin, 255 - red);
  analogWrite(BluePin, 255 - blue);
  analogWrite(GreenPin, 255 - green);
}

static void rgb_init(bool state)
{
  if (state == true)
  {
    pinMode(RedPin, OUTPUT);
    pinMode(BluePin, OUTPUT);
    pinMode(GreenPin, OUTPUT);
  }
}

五、成果展示:

要实现 Arduino 声控 RGB 灯的功能,你可以按照以下步骤进行操作: 1. 连接硬件:将 Arduino 开发板与声音传感器和 RGB LED 灯连接起来。声音传感器需要连接到 Arduino 的模拟引脚,而 RGB LED 灯需要连接到 Arduino 的数字引脚。 2. 编写代码:使用 Arduino IDE 编写代码来实现声控 RGB 灯的功能。以下是一个简单的示例代码: ```arduino // 定义声音传感器的引脚 int soundPin = A0; // 定义 RGB 灯的引脚 int redPin = 9; int greenPin = 10; int bluePin = 11; // 定义声音的阈值 int soundThreshold = 500; void setup() { pinMode(soundPin, INPUT); pinMode(redPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode(bluePin, OUTPUT); } void loop() { // 读取声音传感器的数值 int soundValue = analogRead(soundPin); // 如果声音超过阈值,则随机显示 RGB 灯的颜色 if (soundValue > soundThreshold) { // 随机生成 RGB 值 int redValue = random(256); int greenValue = random(256); int blueValue = random(256); // 设置 RGB 灯的颜色 analogWrite(redPin, redValue); analogWrite(greenPin, greenValue); analogWrite(bluePin, blueValue); delay(1000); // 延迟一段时间,使灯亮持续一段时间 } else { // 关闭 RGB 灯 analogWrite(redPin, 0); analogWrite(greenPin, 0); analogWrite(bluePin, 0); } } ``` 3. 上传代码:将编写好的代码上传到 Arduino 开发板中。 4. 测试:声音传感器会检测声音信号,并根据声音超过阈值的情况下,随机显示 RGB 灯的颜色。 请注意,这只是一个简单的示例,你可以根据需要进行修改和扩展。同时,确保正确连接硬件并选择正确的引脚和阈值,以使程序正常工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值