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口不够 有什么办法吗?