Stap 2: Tijd code!
Schrijf de code hierboven op de Arduino-programma.Donkerder het omgevingslicht is, des te hoger is de waarde van de LDR leest.
Ik gebruikte PWM aan verandering leidde de helderheid.
Vloeiende RGB mood lamp
Hiermee wijzigt u een RGB LED's kleur soepel die alleen aanzet
Wanneer is het donker eromheen.
Auteur: Ricardo Ouvina
Datum: 19/07/2012
Versie: 2.0
// ---------------------------------------------------
De helderheid van de LED's volgt deze vergelijkingen:
Rood = sin(x)
Groen = sin (x + PI/3)
Blauw = sin (x + 2PI/3)
voor x van 0 tot PI
// ---------------------------------------------------
float RGB [3];
int ldrPin = 0; LDR in analoge ingang 0 om te lezen het omgevingslicht
int ambientLight; variabele voor het opslaan van de waarde van het omgevingslicht
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)
VOID Setup {}
pinMode(redLed,OUTPUT); vertellen van arduino is een uitgang
pinMode(greenLed,OUTPUT); / / vertellen arduino is een uitgang
pinMode(blueLed,OUTPUT); vertellen van arduino is een uitgang
alle de uitgangen te laag ingesteld
digitalWrite(redLed,LOW);
digitalWrite(greenLed,LOW);
digitalWrite(blueLed,LOW);
}
void loop {}
voor (float x = 0; x < PI; x = x + 0,00001) {}
RGB[0]=255*ABS(Sin(x*(180/PI))); de helderheid van de rode led berekenen
RGB[1]=255*ABS(Sin((x+pi/3)*(180/PI))); berekenen van de helderheid van de groene led
RGB[2]=255*ABS(Sin((x+(2*pi)/3)*(180/PI))); / / de helderheid van de blauwe led berekenen
ambientLight=analogRead(ldrPin); Lees een winkel het omgevingslicht
if(ambientLight>600) {/ / alleen starten als het omgevingslicht zeer laag is
schrijven van de helderheid van de LED 's
analogWrite(redLed,RGB[0]);
analogWrite(greenLed,RGB[1]);
analogWrite(blueLed,RGB[2]);
}
else {}
digitalWrite(redLed,LOW);
digitalWrite(greenLed,LOW);
digitalWrite(blueLed,LOW);
}
for (int i = 0; ik < 3; i ++) {}
Als (RGB [i] < 1) {}
delay(100);
}
Als (RGB [i] < 5) {}
delay(50);
}
Als (RGB [i] < 10) {}
delay(10);
}
Als (RGB [i] < 100) {}
delay(5);
}
}
delay(1);
}
}