灯不错,路过路过路过路过
我是新手
RGB还有其他程序吗
本帖最后由 一瞬の空 于 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
楼主这程序最后的算法不对,你直接用颜色值就行了,干嘛还要用255减一下啊void setColor(int redValue, int greenValue, int blueValue)
{
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
My_Skity 发表于 2015-2-11 15:00 static/image/common/back.gif
楼主这程序最后的算法不对,你直接用颜色值就行了,干嘛还要用255减一下啊
发错了,把"Value"去掉
楼主我想问下 编译时候出现错误 怎么排除
请问, 255-green 这里为什么要用255减去所输的值
一瞬の空 发表于 2015-2-4 15:55 static/image/common/back.gif
连接
大神 我想问一下 如果按键控制三色灯的一次亮 怎么弄的啊
好东西!!!!!!
请问共阴的RGB LED代码要怎么写?
不错不错。
请问如何用三个电位器,分别控制R\G\B的亮度,也就是说手动输入混合颜色。
myxgda 发表于 2015-8-22 23:05 static/image/common/back.gif
请问如何用三个电位器,分别控制R\G\B的亮度,也就是说手动输入混合颜色。
通过analogRead读取电位计的值,然后将值整合到0到255的范围,然后再输出给RGB彩灯就可以了,我之前做过用电位计控制单个彩灯,原理是一样的
看到这里。。学到新知识了。
想控制多个rgb led 板子上的pwm口不够 有什么办法吗?