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

五、成果展示:

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值