You are on page 1of 4

Food

Living

Outside

Play

Technology

Workshop

Color Changing Nightlight - Arduino Microcontroller


by nicholasgalassi on August 31, 2012 Table of Contents Color Changing Nightlight - Arduino Microcontroller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intro: Color Changing Nightlight - Arduino Microcontroller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Step 1: Setup Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Step 2: Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 3 3 4

http://www.instructables.com/id/Color-Changing-Nightlight-Arduino-Microcontrolle/

Intro: Color Changing Nightlight - Arduino Microcontroller


So, instead of buying a nightlight for my kid's room, I decided I could do a much better job of it. This nightlight cycles through 1500 colors over 7 mins and turns on when it is dark and turns off when it is light. It is also small enough into small objects to add effect. Items needed are: Arduino Microcontroller or equivalent (used a Mapleleaf for this) RBG HB LED common cathode (this one is COM-09264 from sparkfun.com) Photoresistor (this one is from Radioshack, any will do) 10k ohm Resistor

http://www.instructables.com/id/Color-Changing-Nightlight-Arduino-Microcontrolle/

Step 1: Setup Arduino


First create a voltage divider with the photoresistor and the 10k resistor. You can choose any ADC pin, I used 20. I also connected the photoresistor to VCC and 10k to ground. If you choose to swap those, it will change your threshold values and inequalities in your if statements. You can see the configuration in the picture. I didn't install current restricting resistors on the RGB LED because this microcontroller doesn't source much current, but if you may not be that lucky, read the spec sheet for the LED to see current values. The reason I'm crossing the board with the resistor and LED is because many of the grounds on this board were not working.

Step 2: Programming
Here is the program if used, you may have to changes sometimes to adapt it to your microcontroller. /* NightLight */ int sensorValue = 0; // Variable to store the value coming from the photoresistor int ledPin1 = 0; // Connect an LED to PWM pin 0 int ledPin2 = 1; // '' pin 1 int ledPin3 = 2; // '' pin 2 int fadeValue2 = 0; // Variable for fading 2 colors at once int threshold = 850; // Threshold value for the photoresistor void lightup(void); void setup() { pinMode(20, INPUT_ANALOG); // Setup pin 20 to read a voltage pinMode(ledPin1, PWM); // setup the pin as PWM pinMode(ledPin2, PWM); pinMode(ledPin3, PWM); } void loop() { sensorValue = analogRead(20); // Read the analog value if(sensorValue < threshold) { lightup(); // If less than threshold call lightup } if(sensorValue > threshold) { pwmWrite(ledPin1, 0); // If not less than threshold turn off LED pwmWrite(ledPin2, 0); pwmWrite(ledPin3, 0); } delay(10); } void lightup(void) { pwmWrite(ledPin1, 65535); for (int fadeValue = 0; fadeValue <= 65535; fadeValue += 1280) { // Sets the value (range from 0 to 65535): yellow pwmWrite(ledPin2, fadeValue); // Wait for 30 milliseconds to see the dimming effect: delay(1000); } for (int fadeValue = 0; fadeValue <= 65535; fadeValue += 1280) { // Sets the value (range from 0 to 65535): white pwmWrite(ledPin3, fadeValue); // Wait for 30 milliseconds to see the dimming effect: delay(1000); } for (int fadeValue = 65535 ; fadeValue >= 0; fadeValue -= 1280) { // Sets the value (range from 0 to 1280): violet pwmWrite(ledPin2, fadeValue); // Wait for 30 milliseconds to see the dimming effect: delay(1000); }

http://www.instructables.com/id/Color-Changing-Nightlight-Arduino-Microcontrolle/

for (int fadeValue = 65535 ; fadeValue >= 0; fadeValue -= 1280) { // Sets the value (range from 0 to 1280): blue pwmWrite(ledPin1, fadeValue); // Wait for 30 milliseconds to see the dimming effect: delay(1000); } for (int fadeValue = 65535 ; fadeValue >= 0; fadeValue -= 1280) { // Sets the value (range from 0 to 1280): green pwmWrite(ledPin3, fadeValue); pwmWrite(ledPin2, fadeValue2); fadeValue2 += 1280; // Wait for 30 milliseconds to see the dimming effect: delay(1000); sensorValue = analogRead(20); } for (int fadeValue = 0; fadeValue <= 65535; fadeValue += 1280) { // Sets the value (range from 0 to 65535): lt blue pwmWrite(ledPin3, fadeValue); // Wait for 30 milliseconds to see the dimming effect: delay(1000); sensorValue = analogRead(20); } fadeValue2 = 65535; for (int fadeValue = 0; fadeValue <= 65535; fadeValue += 1280) { // Sets the value (range from 0 to 65535): red pwmWrite(ledPin1, fadeValue); pwmWrite(ledPin2, fadeValue2); pwmWrite(ledPin3, fadeValue2); fadeValue2 -= 1280; // Wait for 30 milliseconds to see the dimming effect: delay(1000); } } Adjusting the value for threshold will change the sensitivity to ambient light.

Related Instructables

Teddy nightlight multicolor by fraz75

How to make an Arduino based night light with infrared remote control! by timotet

DIY Funky Nightlight: The 4x4x4 LED Cube by AnalogueChick

Nightlight IR Detector Hack (Photos) by yardleydobon

Owl Night-light (Photos) by klee4vp

Trippy RGB Color Mixing NightLight by e024576

http://www.instructables.com/id/Color-Changing-Nightlight-Arduino-Microcontrolle/

You might also like