Rouleau lumineux

Pour ce projet on utilise une LDR (capteur de lumière) pour déterminer la couleur des LED RGB.

La LDR en s’approchant du sol capte de moins en moins de lumière.

Il y a trois stades, trois niveaux de lumière qui donnent du vert, du bleu ou du rouge.

Il suffit donc de faire rouler le rouleau pour changer la couleur de la lumière.

 

 

[code lang= »c »]

int ldr1 = A0;
int ledB1 = 8;
int ledV1 = 9;
int ledR1 = 10;

int ledR2 = 11;
int ledB2 = 12;
int ledV2 = 13;

int ldr1Value;
int ldr2Value;
int ldr3Value;

void setup() {
pinMode(ledR1, OUTPUT);
pinMode(ledV1, OUTPUT);
pinMode(ledB1, OUTPUT);
pinMode(ledR2, OUTPUT);
pinMode(ledV2, OUTPUT);
pinMode(ledB2, OUTPUT);
pinMode(ldr1, INPUT);
Serial.begin(9600);
}

void loop() {
ldr1Value = analogRead(ldr1);
Serial.print("ldr1Value =");
Serial.print(ldr1Value);
Serial.print("\t");

if ((ldr1Value > 0) && (ldr1Value < 300)){
digitalWrite(ledR1, HIGH);
digitalWrite(ledV1, LOW);
digitalWrite(ledB1, LOW);
digitalWrite(ledR2, HIGH);
digitalWrite(ledV2, LOW);
digitalWrite(ledB2, LOW);
}

if ((ldr1Value > 300) && (ldr1Value < 500)){
digitalWrite(ledR1, LOW);
digitalWrite(ledV1, HIGH);
digitalWrite(ledB1, LOW);
digitalWrite(ledR2, LOW);
digitalWrite(ledV2, HIGH);
digitalWrite(ledB2, LOW);
}

if ((ldr1Value > 500) && (ldr1Value < 1200)){
digitalWrite(ledR1, LOW);
digitalWrite(ledV1, LOW);
digitalWrite(ledB1, HIGH);
digitalWrite(ledR2, LOW);
digitalWrite(ledV2, LOW);
digitalWrite(ledB2, HIGH);
}
}
[/code]