LED lampa (2 / 3 steg)
Steg 2: kod
Smidig RGB humör lampa
Ändrar en RGB LED färg smidigt som bara vänder på
När det är mörkt runt den.
Författare: Ricardo Ouvina
Datum: 19/07/2012
Version: 2.0
// ---------------------------------------------------
Ljusstyrkan på lysdioderna följer dessa ekvationer:
Röd = sin(x)
Grön = synd (x + PI/3)
Blå = synd (x + 2PI/3)
för x från 0 till PI
// ---------------------------------------------------
float RGB [3].
int ldrPin = 0; LDR i Analog ingång 0 att läsa det omgivande ljuset
int ambientLight; variabel för att lagra värdet för omgivande ljus
int redLed = 11; Röd LED i Digital Pin 11 (PWM)
int greenLed = 10; Grön LED i Digital Pin 10 (PWM)
int blueLed = 9; blå LED i Digital Pin 9 (PWM)
void setup() {
pinMode(redLed,OUTPUT); berätta arduino är det en utgång
pinMode(greenLed,OUTPUT); / / tala arduino är det en utgång
pinMode(blueLed,OUTPUT); berätta arduino är det en utgång
Ange alla utgångar till låg
digitalWrite(redLed,LOW);
digitalWrite(greenLed,LOW);
digitalWrite(blueLed,LOW);
}
void loop() {
för (float x = 0; x
RGB[0]=255*ABS(sin(x*(180/PI))); beräkna ljusstyrkan för den röda led
RGB[1]=255*ABS(sin((x+PI/3)*(180/PI))); beräkna ljusstyrkan för den gröna ledde
RGB[2]=255*ABS(sin((x+(2*PI)/3)*(180/PI))); / / beräkna ljusstyrkan för den blå lampan
ambientLight=analogRead(ldrPin); Läs en butik det omgivande ljuset
IF(ambientLight>600) {/ / starta endast om det omgivande ljuset är mycket låg
Skriv ljusstyrkan på lysdioderna
analogWrite(redLed,RGB[0]);
analogWrite(greenLed,RGB[1]);
analogWrite(blueLed,RGB[2]);
}
annat {
digitalWrite(redLed,LOW);
digitalWrite(greenLed,LOW);
digitalWrite(blueLed,LOW);
}
för (int jag = 0; jag < 3; i ++) {
om (RGB [i] < 1) {
Delay(100);
}
om (RGB [i] < 5) {
Delay(50);
}
om (RGB [i] < 10) {
Delay(10);
}
om (RGB [i] < 100) {
Delay(5);
}
}
Delay(1);
}
}