Stap 4: Het programma
Ik probeerde een paar RGB kleur cyclus-programma's, maar uiteindelijk ernstig wijzigen iemand anders programma. Ik heb toegevoegd sommige randimizations zodat u het display minder statisch en hopelijk interessanter. Heres is de huidige versie.
/*******************************************************\
* RGB_Fade *
* Gemaakt voor het gebruik van gemeenschappelijke! kathode! RGB LED's. *
* Cycli door middel van de drie kleuren, in-en uitfaden. *
* De pinnen gebruikt moet PWM(~) pinnen. *
* *
* Auteur: Anthony Weber *
* Datum gemaakt: 03 April, 2012 *
* *
* Enigszins bewerkt door Hippynerd (hippynurd *
* te maken overgangen vloeiender, de fietsen *
* meer interessant. *
\*******************************************************/
Kleur Pin variabelen
int redPin = 11; Is het niet duidelijk?
int greenPin = 10;
int bluePin = 9;
Timing instellingen variabelen
int fadeSpeed = 1; Dit is hoeveel elke LED op elke stap verandert.
int delaytime = 1; de wachttijd tussen de cycli.
int delayCount = 1;
int randCount = 10;
Opmerking: Ik heb geprobeerd om fadeSpeed willekeurige, maar slechte dingen gebeurd.
Andere variabelen. Niet nodig om deze te veranderen.
int rood = 0; Uitgangsposities.
int groen = 0; Als u dit, omdat de code is ingesteld
int blauw = 255; om te beginnen in het blue, kan het grappig handelen op de eerste cyclus.
int modus = 0; 0 - blauw tot paars, 1 - paars naar rood, 2 - rood naar geel,
3 - geel tot groen, 4 - groen naar aqua, 5 - aqua blauw
VOID Setup {//3-5-g-6
verklaren pin 9 als een vermogen:
pinMode (bluePin, OUTPUT); blauw
pinMode (greenPin, OUTPUT); groen
pinMode (redPin, OUTPUT); rood
}
void loop {}
Licht 'em!
analogWrite (bluePin, blauw);
analogWrite (greenPin, groene);
analogWrite (redPin, rood);
Verander 'em nu!
Als (modus == 0) {//blue paars;
Als (rode > = 255) {//change plaatsen!
modus = 1;
delay(delaytime*50); niet veranderen meteen.
} else {}
rode += fadeSpeed;
}
}
anders als (modus == 1) {//purple rood
Als (blauwe < = 0) {//change plaatsen!
modus = 2;
delay(delaytime*50); //dont wijziging meteen.
} else {}
blauw-= fadeSpeed;
}
}
anders als (modus 2 ==) {//red geel
Als (groene > = 255) {//change plaatsen!
modus = 3;
delay(delaytime*50); //dont wijziging meteen.
} else {}
groene += fadeSpeed; ///2; Ik vertraagd dit omdat het lijkt te knipperen door te snel.
Als (groene > 255) groen = 255;
}
}
anders als (modus == 3) {//yellow groen
Als (rode < = 0) {//change plaatsen!
modus = 4;
delay(delaytime*50); //dont wijziging meteen.
} else {}
rode-= fadeSpeed;
}
}
anders als (modus == 4) {//green naar aqua
Als (blauwe > = 255) {//change plaatsen!
modus = 5;
delay(delaytime*50); //dont wijziging meteen.
} else {}
blauwe += fadeSpeed;
}
}
anders als (modus == 5) {//aqua blauw
Als (groene < = 0) {//change plaatsen!
modus = 0;
delay(delaytime*50); //dont wijziging meteen.
} else {}
groene-= fadeSpeed;
}
}
Deze vertraging werkt vrij goed, maar voel je vrij om
deze wijzigen als u wilt dat een snellere, maar soepelere vervagen.
Gewijzigde vertraging aan willekeurige voor meer plezier display.
delayCount ++;
Als (delayCount > = randCount) {}
delayCount = 1;
randCount = willekeurige (500, 5000);
delaytime = willekeurige (1, 150); willekeurige vertragingen te houden dingen interessant
}
delay(delaytime);
}