Introduction: Light Activated LED
The Arduino takes sensor readings for five seconds during the startup, and tracks the highest and lowest values it gets. These sensor readings during the first five seconds of the sketch execution define the minimum and maximum of expected values for the readings taken during the loop.
materials:
Arduino board
(1) LED
(1) analog sensor (a photocell will do)
(1) 10K ohm resistor
(1) 270 ohm resistor
hook-up wire
9 volt battery pack
The code:
// These constants won't change:
const int sensorPin = A0; // pin that the sensor is attached to
const int ledPin = 9; // pin that the LED is attached to
// variables:
int sensorValue = 0; // the sensor value
int sensorMin = 1023; // minimum sensor value
int sensorMax = 0; // maximum sensor value
void setup() {
// turn on LED to signal the start of the calibration period:
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
// calibrate during the first five seconds
while (millis() < 10) {
sensorValue = analogRead(sensorPin);
// record the maximum sensor value
if (sensorValue > sensorMax) {
sensorMax = sensorValue;
}
// record the minimum sensor value
if (sensorValue < sensorMin) {
sensorMin = sensorValue;
}
}
// signal the end of the calibration period
digitalWrite(13, LOW);
}
void loop() {
// read the sensor:
sensorValue = analogRead(sensorPin);
// apply the calibration to the sensor reading
sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255);
// in case the sensor value is outside the range seen during calibration
sensorValue = constrain(sensorValue, 0, 255);
// fade the LED using the calibrated value:
analogWrite(ledPin, sensorValue);
}

Participated in the
Make It Glow
3 Comments
10 years ago on Introduction
Great idea to add a calibration routine but I am still not getting success in trying to duplicate this project. Could you also provide a schematic, or create a video showing how you hooked up the circuit? Maybe some parts of my uno board are just fried. Thanks.
Reply 10 years ago on Introduction
led pin to pin 9 photocell to analog 0, then a 10k resistor between analog 0 and the photocell
Reply 10 years ago on Introduction
the resistor goes to ground