Humör lampa med Arduino (2 / 4 steg)
Steg 2: Dags att koden!
Skriv koden ovan på Arduino programmet.Mörkare det omgivande ljuset är, det högre värdet läsa från LDR.
Jag använde PWM till förändring ledde 's ljusstyrka.
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 < PI, x = x + 0.00001) {
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);
}
}