Omgivande Batman lampa - Arduino | Foto-Resistive| Auto-On när mörka | MultiColor (7 / 11 steg)
Steg 7: Dags att koden
Kod 1
Följande kod är tagen från: här
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 = 9; Grön LED i Digital Pin 9 (PWM)
int blueLed = 10; blå LED i Digital Pin 10 (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);
}
}
Kod 2:
Om du inte gillar blekning effekter och har lysdioder av bara en färg [för ex gul endast lysdioder] och föredrar enkla glödande lampor använder följande kod istället:
Ansluta lysdioder parallellt och att digital pin11
Författare: Amit Shekhar
Batman lampa ljus beroende
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 Led = 11; LED i Digital stift 11
void setup() {
pinMode(Led,OUTPUT);
digitalWrite(Led,LOW);
}
void loop() {
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
digitalWrite(Led,HIGH);
}
annat {
digitalWrite(Led,LOW);
}
}