Instructables

Light activated LED

video 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);
}

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.
arduino 123 (author)  shakespeare12121 year ago
led pin to pin 9 photocell to analog 0, then a 10k resistor between analog 0 and the photocell
arduino 123 (author)  arduino 1231 year ago
the resistor goes to ground