用电位器调RGB灯的颜色,请问我这个出现什么错误了?
请问我的代码有什么问题?
还有一个是如何用电位器 只改变RGB灯中红色灯的值呢?
小白求大神解答!!
你自己编译、下载到 UNO中看一下,就知道出现什么错误了。 我想应该是用电位器单独控制1中颜色吧,把电位器接入模拟端口(如A0),再用analogRead()读出模拟量,这样就可以进行控制了。 delay(ms)
5 ms 肉眼反应不过来,看上去就是 RGB 都是亮的,变成白光。
如果想5秒就改为 5000 xxllg 发表于 2014-9-30 10:04 static/image/common/back.gif
我想应该是用电位器单独控制1中颜色吧,把电位器接入模拟端口(如A0),再用analogRead()读出模拟量,这样就 ...
就是控制RGB的颜色,可以调出不同的色,请问代码具体怎么写啊,新手不懂,求参考~ 奔跑的二毛 发表于 2014-9-30 13:33 static/image/common/back.gif
就是控制RGB的颜色,可以调出不同的色,请问代码具体怎么写啊,新手不懂,求参考~
把你的代码贴上来吧 i7456 发表于 2014-9-30 13:53 static/image/common/back.gif
把你的代码贴上来吧
int redPin = 11;
int greenPin = 10;
int bluePin = 9
int value = 5;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
setColor(255, 0, 0);// 红色
delay(value);
setColor(0, 255, 0);// 绿色
delay(value);
setColor(0, 0, 255);// 蓝色
delay(value);
}
void setColor(int red, int green, int blue)
{
analogWrite(redPin, 255-red);
analogWrite(greenPin, 255-green);
analogWrite(bluePin, 255-blue);
}
就是上面的那个!
谢谢! 奔跑的二毛 发表于 2014-9-30 14:13 static/image/common/back.gif
int redPin = 11;
int greenPin = 10;
int bluePin = 9
int redPin = 11;
int greenPin = 10;
int bluePin = 9;
int value = 0;
void setup()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop()
{
value = analogRead(5)/4;
setColor(value, 70, 80);// 红色
}
void setColor(int red, int green, int blue)
{
analogWrite(redPin, 255-red);
analogWrite(greenPin, 255-green);
analogWrite(bluePin, 255-blue);
} i7456 发表于 2014-9-30 14:29 static/image/common/back.gif
或者直接 analogWrite(redPin, 255 - value) 可能簡單 D. i7456 发表于 2014-9-30 14:29 static/image/common/back.gif
谢谢!等回去了试试!这是只控制红色通道的话, 如果我只是用电位器来调不同的颜色,转动电位器,什么色都能出来的那种,代码请问怎么改呢~ i7456 发表于 2014-9-30 14:29 static/image/common/back.gif
还有这个代码没有看懂, setColor(value, 70, 80);// 红色
红色的话不应该是(255,0,0)吗?
请原谅我,小白问题比较多 ~ :) 奔跑的二毛 发表于 2014-9-30 16:14 static/image/common/back.gif
谢谢!等回去了试试!这是只控制红色通道的话, 如果我只是用电位器来调不同的颜色,转动电位器,什么色都 ...
你需要3个电位器,每个电位器控制一个颜色的亮度。 奔跑的二毛 发表于 2014-9-30 16:17 static/image/common/back.gif
还有这个代码没有看懂, setColor(value, 70, 80);// 红色
红色的话不应该是(255,0,0)吗 ...
你的问题是“如何用电位器 只改变RGB灯中红色灯的值呢”,我给你的程序可以改变红色灯的亮度。
setColor(255, 0, 0);//你在程序中把亮度设定成常数值了,你还如何控制呢? i7456 发表于 2014-9-30 16:22 static/image/common/back.gif
你的问题是“如何用电位器 只改变RGB灯中红色灯的值呢”,我给你的程序可以改变红色灯的亮度。
setCol ...
谢谢你解释的这么详细!
value = analogRead(5)/4;这个单杠4是什么意思呢?
setColor(value, 70, 80);// 红色这个我不懂的设为为什么是70,80这两个数值?
奔跑的二毛 发表于 2014-9-30 17:04 static/image/common/back.gif
谢谢你解释的这么详细!
value = analogRead(5)/4;这个单杠4是什么意思呢?
setColor(value, 70, 80 ...
analogRead(5)/4;
把analogRead()的值除以4,analogRead()范围是0-1023,analogWrite()的范围是0-255;
70,80这两个数是我随便写的,你改成别的数值看下结果就好了。
页:
[1]
2