02-09-2016, 20:48
(Ten post był ostatnio modyfikowany: 04-09-2016, 14:53 przez Gargamel_JR.)
Chcę zrobić ,aby dioda led RGB zmieniała kolory i zacząłem od zrobienia funkcji obsługujących zmianę koloru. Gdy napiszę w funkcji loop jedną (np. red() ) to działa, ale po napisaniu np.
już nie działa nawet jedna z nich.
Tu cały kod programu:
Kod:
red()
delay(10);
green();
Tu cały kod programu:
Kod:
int r = 2,g = 3,b = 1,nr = 0,ng = 0,nb = 0;
// nr - natężenie red, ng - natężenie green, nb - natężenie blue
void setup() {
pinMode(r,OUTPUT);
pinMode(g,OUTPUT);
pinMode(b,OUTPUT);
pinMode(A0,INPUT);
pinMode(A1,INPUT);
pinMode(A2,INPUT);
}
void loop() {
red();
green();
blue();
}
void red()
{
for(int i = 1;i <= 255;i++);
{
if(nr < 255) {nr++;}
if(ng > 0) {ng--;}
if(nb > 0) {nb--;}
analogWrite(r,nr);
analogWrite(g,ng);
analogWrite(b,nb);
delayMicroseconds(10);
}
}
void green()
{
for(int i = 1;i <= 255;i++);
{
if(ng < 255) {ng++;}
if(nr > 0) {nr--;}
if(nb > 0) {nb--;}
analogWrite(r,nr);
analogWrite(g,ng);
analogWrite(b,nb);
delayMicroseconds(10);
}
}
void blue()
{
for(int i = 1;i <= 255;i++);
{
if(nb < 255) {nb++;}
if(ng > 0) {ng--;}
if(nr > 0) {nr--;}
analogWrite(r,nr);
analogWrite(g,ng);
analogWrite(b,nb);
delayMicroseconds(10);
}
}