Unexpected behavior ? what am I missing?

Thinking about it a little more, maybe the better approach would be for you to do something like:

void loop()                     
{
 do
 {
   R1 = random (2);        //generate random value of 0 or 1
   R2 = random (2);
   R3 = random (2);
 while (R1 == 0 && R2 == 0 && R3 == 0);

 // === Red LED ===
 if (R1 == 0)
 {
   digitalWrite(L1, LOW);
 }
 else
 {
   digitalWrite(L1, HIGH);
 }

 // === Blue LED ===
 if (R2 == 0)
 {
   digitalWrite(L2, LOW);
 }
 else
 {
   digitalWrite(L2, HIGH);
 }

 // === Green LED ===
 if (R3 == 0)
 {
   digitalWrite(L3, LOW);
 }
 else
 {
   digitalWrite(L3, HIGH);
 }

 // === Delay ===
 //generate random delay time -between .25 and 1 second
 D = random (250,1001);
 delay(D);
}

This way your code never even makes the LED completely dark. It'd still be interesting to see why your previous code didn't work quite right, though.

  • Ben