Daniel Ward
Skeleton Night Light
This project is an ambient light that reacts to the light in the room. When the room has light in it the skeleton is off. As night falls, the skeleton will light up according to how dark it gets. It is at its brightest when it is pitch dark.
Code:
const int sensorPin = 0; // the pin that the sensor is attached to
const int ledPin = 9; //the pin that the LED is attached to
// variables:
int sensorValue = 0; // the sensor value
int sensorMin = 0; // the minimum sensor value
int sensorMax = 1023; // the 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() < 5000) {
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);
}
Comments
You can follow this conversation by subscribing to the comment feed for this post.