flywat 发表于 2014-11-19 21:29:42

灯不错,路过路过路过路过

火影 发表于 2015-1-24 18:35:20

我是新手
RGB还有其他程序吗

一瞬の空 发表于 2015-2-4 15:55:03

本帖最后由 一瞬の空 于 2015-2-4 16:31 编辑

火影 发表于 2015-1-24 18:35 static/image/common/back.gif
我是新手
RGB还有其他程序吗

连接


波形图
转的三相电的图,实际图像是最大值为255最小值为0的(懂三角函数的都懂)


程序
/*
作品:RGB共阳LED颜色渐变
注释:LED共阳,4脚接正极,其他接RGB颜色
时间:2015.02.03
作者:一瞬の空
*/
const int LED1=3;
const int VCC=4;
const int LED2=5;
const int LED3=6;//定义引脚
float a=0;//计数用,提供函数x轴
int time=10;//延迟时间,单位毫秒,调整变化快慢
int r=0;
int g=0;
int b=0;//三个颜色设定

void setup()
{
  pinMode(LED1,OUTPUT);
  pinMode(LED2,OUTPUT);
  pinMode(LED3,OUTPUT);
  pinMode(VCC,OUTPUT);//定义引脚输入输出模式
  digitalWrite(VCC,HIGH);//3,5,6引脚输出pwm,为了方便,设置4为高电平
}

void loop()
{
  for(a=0;a<6.28;a=a+0.01)//for循环,格式“for(初始化;条件;运算),此循环用于提供变化的数
  {
    r=(127.5*(sin(a)+1));
    g=(127.5*(sin(a-2.09)+1));
    b=(127.5*(sin(a+2.09)+1));//r,g,b运算表达式,X轴错开2.09以达到同一时间不同亮度
    /*
     此处用了三相电公式
     V1 = Asin(2πft)=Asin(wt)
     V2 = Asin(2πft - 2π/3)=Asin(wt-2π/3)
     V3 = Asin(2πft + 2π/3)=Asin(wt+2π/3)
     */
    analogWrite(LED1,r);
    analogWrite(LED2,g);
    analogWrite(LED3,b);//输出亮度pwm调制波,范围0~255
    delay(time);//延时毫秒,防止运算太快变化不明显
  }
}

视频
http://v.youku.com/v_show/id_XODg2Mzc0MzY0.html

My_Skity 发表于 2015-2-11 15:00:40

楼主这程序最后的算法不对,你直接用颜色值就行了,干嘛还要用255减一下啊void setColor(int redValue, int greenValue, int blueValue)
{
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}

My_Skity 发表于 2015-2-11 15:01:30

My_Skity 发表于 2015-2-11 15:00 static/image/common/back.gif
楼主这程序最后的算法不对,你直接用颜色值就行了,干嘛还要用255减一下啊

发错了,把"Value"去掉

hilqiqi0 发表于 2015-3-10 09:46:04

楼主我想问下 编译时候出现错误 怎么排除   

彩色大冰棍丶 发表于 2015-4-12 15:03:06

请问, 255-green   这里为什么要用255减去所输的值

蓝色骨骨头 发表于 2015-4-23 17:11:57

一瞬の空 发表于 2015-2-4 15:55 static/image/common/back.gif
连接




大神 我想问一下 如果按键控制三色灯的一次亮 怎么弄的啊

canheting 发表于 2015-5-5 22:32:45

好东西!!!!!!

jane2015 发表于 2015-6-30 18:48:58

请问共阴的RGB LED代码要怎么写?

aa阿瓜 发表于 2015-7-23 21:34:44

不错不错。

myxgda 发表于 2015-8-22 23:05:05

请问如何用三个电位器,分别控制R\G\B的亮度,也就是说手动输入混合颜色。

TilaMaker 发表于 2015-8-22 23:13:36

myxgda 发表于 2015-8-22 23:05 static/image/common/back.gif
请问如何用三个电位器,分别控制R\G\B的亮度,也就是说手动输入混合颜色。

通过analogRead读取电位计的值,然后将值整合到0到255的范围,然后再输出给RGB彩灯就可以了,我之前做过用电位计控制单个彩灯,原理是一样的

狂吠的小疯狗 发表于 2015-10-7 13:41:02

看到这里。。学到新知识了。

С罗 发表于 2015-12-6 21:12:08

想控制多个rgb led 板子上的pwm口不够 有什么办法吗?
页: 1 2 [3] 4
查看完整版本: Arduino入门教程--点亮RGB LED