Stap 3: Code tijd
Auteur: Prajjwal
Datum: 25/07/2014
Versie: 2.0
// -----------------------------------------------------------------------------------------------------
Dit was toen is begonnen met het maken van een mood lamp maar dan ik realiseer ik kan doen meer dan alleen het veranderen van kleur
Dus is LUMO gemaakt
Het heeft verschillende functie neer waardoor ik stimuate real-time situatie in de lamp
Afgezien van alleen regenboog verandering er zijn tal van andere functie die ik heb codering //there zijn 10 optie in LUMO versie 2.0
// -----------------------------------------------------------------------------------------------------
float RGB [3]; int ldrPin = 0;
LDR in analoge ingang 0 te lezen van de ambient licht int ambientLight;
variabele voor het opslaan van de waarde van de ambient licht int redLed = 11;
rode LED in digitale Pin 11 (PWM) int greenLed = 10;
groene LED in digitale Pin 10 (PWM) int blueLed = 9;
blauwe LED in digitale Pin 9 (PWM) int staat;
void setup {pinMode(redLed,OUTPUT);
arduino vertellen dat het is een pinMode(greenLed,OUTPUT) van de uitvoer;
arduino vertellen dat het is een pinMode(blueLed,OUTPUT) van de uitvoer;
vertellen van arduino is een vermogen van Serial.begin(9600);
De seriële poort van de Statrting op 9600 bits per seconde Serial.println ("=== LUMO verwelkomt U ==="); Serial.println ("1:Rainbow kleur");
Serial.println ("2:Police lamp");
Serial.println ("3:Digital Flame");
Serial.println ("4:Digital Code");
Serial.println ("6:Abstract-kleur fading");
alle de uitgangen ingesteld op lage digitalWrite(redLed,HIGH);
digitalWrite(greenLed,HIGH);
digitalWrite(blueLed,HIGH); }
void loop
{
Als (Serial.available() > 0)
{Als (Serial.peek() == 'c')
{
selectievakje voor het teken dat betekent dat dit een opdracht zal zijn
Serial.Read();
Verwijder het teken dat betekent dat dit is een commando uit de seriële buffer
staat = Serial.parseInt();
onze verwachte gehele getal opslaan in staat
schakelaar (staat) {}
1:changecolor (); break; case
2:police (); break; case
3:flame (); break; case
4:code (); break; case
5:abstract (); break; case
}
}
terwijl (Serial.available() > 0) {}
Gooi alles wat we hadden niet verwacht
Serial.Read(); } } }
VOID changecolor()
{
voor (float x = 0; x
}}
VOID fade (int r1 int g1, int b1, int r2, int g2, int b2, int t) {}
float-r_float1, g_float1, b_float1; float-r_float2, g_float2, b_float2;
float-grad_r, grad_g, grad_b; float-output_r, output_g, output_b;
RGB-integerwaarden declareren als float waarden
r_float1 = r1 (float);
g_float1 = g1 (float);
b_float1 = b1 (float);
r_float2 = r2 (float);
g_float2 = g2 (float);
b_float2 = b2 (float);
veranderingstempo van R, G en B-waarden berekenen
grad_r = /t (r_float2-r_float1); grad_g = /t (g_float2-g_float1);
grad_b = /t (b_float2-b_float1);
ronde, lus verhogen tijdwaarde "i"
voor (ik zweven = 0; ik < = t; i ++)
{
output_r = r_float1 + grad_r * i;
output_g = g_float1 + grad_g * i;
output_b = b_float1 + grad_b * i;
kaart waarden - arduino is actueel, zinken niet sourcing het
output_r = kaart (output_r, 0, 255, 255, 0);
output_g = kaart (output_g, 0, 255, 255, 0);
output_b = kaart (output_b, 0, 255, 255, 0);
uitgang van de analogWrite (redLed, output_r (int));
analogWrite (greenLed, (int) output_g);
analogWrite (blueLed, (int) output_b);
Houd bij deze kleur instellen voor 1ms delay(1);
} }
ongeldig code() {}
while(1) {}
setColor(5,252,17);
delay(Random(100,500));
setColor(0,0,0);
delay(Random(100,500));
}}
VOID abstract()
{
while(1) {}
zweven rf gf, bf, r1, g1, b1;
R1 = random(0,255);
G1 = random(0,255);
B1 = random(0,255);
RF = random(0,255);
GF = random(0,255);
BF = random(0,255);
Fade(RF,GF,BF,R1,G1,B1,3000);
verkleuren van rood naar groen van meer dan 5 seconden);
} }