Arduino-kontrollerad RGB LED Infinity Mirror (4 / 13 steg)
Steg 4: Arduino kod
Kopiera och klistra in Arduino koden nedan i en ny skiss. Jag kommer inte skriva min egen handledning här, så om du inte vet hur man skapar/ladda upp en skiss, kolla in den officiella Arduino - komma igång -sidan. Om du vill veta mer om ett visst kommando, Googla det (e.g. "Arduino analogWrite") och officiella hjälp-sidan bör pop rätt upp.
Varning: detta förmodligen inte är den mest effektiva koden! Särskilt, jag är inte säker på ett trevligare sätt att kontinuerligt övervaka potentiometer fade-hastighet utan att kopiera och klistra in den samma kodraden och om igen, eller om det finns ett sätt att bryta av en for-slinga om du vänder Vippbrytare (just nu, om du växlar till individ-läge i färg-tona läget, övergången kommer inte ske förrän den är klar den nuvarande fade cykeln). Jag ska så, kasta det där ute som en utmaning till alla som läser detta och vill lägga bättre kod. Klart är jag maskiningenjör på hjärtat och inte en programmerare.
Arduino koden till kontroll och RGB LED strip
Använder en Vippbrytare för att växla mellan färg-fade läge
och enskilda RGB läge
Anpassad från http://learn.adafruit.com/rgb-led-strips/example-codeCONST int rött = 9. definiera digital utgångsstift för enskilda röd,
CONST int grön = 10; gröna och blå kanalerna
CONST int blå = 11;CONST int POT1 = 0; definiera analog ingång stift för tre potentiometrar
CONST int POT2 = 1;
CONST int POT3 = 2;
CONST int POT4 = 3;CONST int knappen = 2; definiera digital ingångsstift för växeln
int val = 0; lagrar statligt av switch ingångsstift
int FADESPEED = 0; initiera blekna hastighet av potentiometer
int r = 0; initiera de röda, gröna och blå värdena
int g = 0;
int b = 0;
void setup() {
pinMode (röd, OUTPUT); definiera digital pins som utgångar och ingångar som behövs
pinMode (gröna, OUTPUT);
pinMode (blå, OUTPUT);
pinMode (knapp, indata);
}void loop() {
Val = digitalRead(BUTTON); Läs indatavärde från Vippbrytareom (val == hög) {
kod för RGB färg tona
FADESPEED = analogRead (POT4) / 10; ställa in fade hastigheten genom att läsa analog insignal från 4. potentiometer
analogRead kommer ut ett tal mellan 0 och 1023, och "delay"
anges i millisekunder, så den största fördröjning får du här handlar om
1/10 sekund. Dela upp av ett annat nummer att ändra max
blekna tid.
blekna från blått till violett
för (r = 0; r < 256; r ++) {
analogWrite (röd, r);
FADESPEED = analogRead (POT4) / 10; kontrollera hastigheten fade kontinuerligt, annars
Det kommer inte uppdatera förrän det har gått igenom en komplett cykel.
Förmodligen inte det mest effektiva sättet att göra detta...
Delay(FADESPEED);
}
blekna från violett till rött
för (b = 255, b > 0, b--) {
analogWrite (blå, b).
FADESPEED = analogRead (POT4) / 10;
Delay(FADESPEED);
}
blekna från rött till gult
för (g = 0, g < 256, g ++) {
analogWrite (grön, g);
FADESPEED = analogRead (POT4) / 10;
Delay(FADESPEED);
}
blekna från gult till grönt
för (r = 255, r > 0, r--) {
analogWrite (röd, r);
FADESPEED = analogRead (POT4) / 10;
Delay(FADESPEED);
}
blekna från grönt till mörkturkos
för (b = 0; b < 256; b ++) {
analogWrite (blå, b).
FADESPEED = analogRead (POT4) / 10;
Delay(FADESPEED);
}
försvinna ur kricka blå
för (g = 255, g > 0, g--) {
analogWrite (grön, g);
FADESPEED = analogRead (POT4) / 10;
Delay(FADESPEED);
}
}
annat {
koden för enskilda RGB kontroll med potentiometrar
r = analogRead (POT3) / 4; Läs värden från de 3 potentiometrar och dividera med 4 för att ställa in ljusstyrka
g = analogRead (POT2) / 4; Observera att analog Läs är 10-bitars (0-1023), analog skriva är en 8-bitars PWM
b = analogRead (POT1) / 4; signalen så du måste dela upp detta värde av 4.analogWrite (röd, r); Skriv analoga värden till röda, gröna och blå utgångsstift
analogWrite (grön, g);
analogWrite (blå, b).
}}