// Public domain, by Chad Miller // Photo of layout at // http://picasaweb.google.com/chadmill/Arduino#5563199409956300850 // BETTER VERSION with more asynchronicity and immediate response at // http://sandbox.chad.org/arduino-light-excitable-blinker-smarter.pde // Map pins to color inputs of LED. int red = 9; int blue = 10; int green = 11; void setup() { pinMode(13, OUTPUT); // pseudo-pin leading to on-board LED pinMode(red, OUTPUT); pinMode(blue, OUTPUT); pinMode(green, OUTPUT); } int lightread() { int a = constrain(analogRead(0), 0, 900); // delay(d) hates nonpositive int lr = 2000 - map(a, 0, 900, 500, 1990); return lr; } void loop() { digitalWrite(13, HIGH); digitalWrite(red, HIGH); delay(lightread()); digitalWrite(blue, HIGH); delay(lightread()); digitalWrite(blue, LOW); digitalWrite(green, HIGH); delay(lightread()); digitalWrite(red, LOW); delay(lightread()); digitalWrite(red, LOW); digitalWrite(blue, LOW); digitalWrite(green, LOW); digitalWrite(13, LOW); delay(lightread()); }