RGB ficklampa (1 / 7 steg)
Steg 1: RGB skissen
I princip koden kan du styra RGB ledde 's färg med en variabel i stället för tre.
De flesta av koden är tillägnad efter grafen jag ingår, det visar vilken färg genereras genom att blanda olika mängder rött, grönt och blått ljus.
Program så här:
1. Läs den potentiometern värde
2. konvertera den potentiometern värde till en mer användbar nummerintervall
3. använda om uttalanden skapar de röda, gröna och blå analoga värdena för varje färg.
Du kan kopiera och klistra in koden eller hämta ingår zip-filen.
int annapetrovic = 6; //can vara någon PWM stift
int bpin = 3; //can vara någon PWM stift
int gpin = 5; //can vara någon PWM stift
int rcolor = 255; / / innehar coresponding ljusstyrka för varje färg
int gcolor = 255;
int bcolor = 255;
int start = 100; / / används för alternativet startkoden
int potv = 0; / / Potentiometer spänning
int färg = 0; //mapped potten värde
void setup() {
pinMode (annapetrovic, produktionen);
pinMode (gpin, produktionen);
pinMode (bpin, produktionen);
färg du lämna detta kommenteras ut om du inte vill
har flashligth växla mellan färgerna på börja
//Red
analogWrite (annapetrovic, 0);
analogWrite (gpin, 255);
analogWrite (bpin, 255);
Delay(start);
//Yellow
analogWrite (annapetrovic, 0);
analogWrite (gpin, 0);
analogWrite (bpin, 255);
Delay(start);
//Green
analogWrite (annapetrovic, 255);
analogWrite (gpin, 0);
analogWrite (bpin, 255);
Delay(start);
//cyan
analogWrite (annapetrovic, 255);
analogWrite (gpin, 0);
analogWrite (bpin, 0);
Delay(start);
//Blue
analogWrite (annapetrovic, 255);
analogWrite (gpin, 255);
analogWrite (bpin, 0);
Delay(start);
//magenta
analogWrite (annapetrovic, 0);
analogWrite (gpin, 255);
analogWrite (bpin, 0);
}
void loop() {
potv = analogRead(A0); Läs Potentiometer position
Color=map(potv,0,1023,0,1530); / / ändra nummer indataområdet
om (färg > = 0 & & färg < = 255) {
röd till gul
gcolor = map(color,0,255,255,0);
analogWrite (annapetrovic, 0);
analogWrite (gpin, gcolor);
analogWrite (bpin, 255);
}
om (färg > = 255 & & färg < = 510) {
gul till grön
rcolor = (färg - 255);
analogWrite (annapetrovic, rcolor);
analogWrite (gpin, 0);
analogWrite (bpin, 255);
}
om (färg > = 510 & & färg < = 765) {
grönt till cyan
bcolor = (färg - 510);
bcolor = map(bcolor,0,255,255,0);
analogWrite (annapetrovic, 255);
analogWrite (gpin, 0);
analogWrite (bpin, bcolor);
}
om (färg > = 765 & & färg < = 1020) {
cyan blå
gcolor = (färg - 765);
analogWrite (annapetrovic, 255);
analogWrite (gpin, gcolor);
analogWrite (bpin, 0);
}
om (färg > = 1020 & & färg < = 1275) {
blå till magenta
rcolor = (färg - 1020);
rcolor = map(rcolor,0,255,255,0);
analogWrite (annapetrovic, rcolor);
analogWrite (gpin, 255);
analogWrite (bpin, 0);
}
om (färg > = 1275 & & färg < = 1530) {
magenta röd
bcolor = (färg - 1275);
analogWrite (annapetrovic, 0);
analogWrite (gpin, 255);
analogWrite (bpin, bcolor);
}
}