We were going crazy without enough sleep!!! Our 2-year-old could not understand how to “wait for the 7” on the clock before coming out of his room morning after morning. He’d wake up early (I mean like 5:27am – “there’s a 7!!!” he’d say) and just assume time to get up, come out of his room, and be awake for the day. Since ages 2-4 have a very difficult time reading clocks, this simple light up clock was a HUGE solution to our problem!!!
GREEN MEANS GO!!! RED, STAY IN BED!!! This simple, inexpensive Arduino real time clock can be set to light up LEDs at whatever time necessary. For us that means at 6:00am it turns RED, STAY IN BED. Then 10 minutes before 7:00am it turns YELLOW giving the indication it is almost time to come out and to play in your room. Then at 7:00am… “The light is GREEN!!!”, he says, as he bursts into our room each morning no earlier than 7:00am. What a lifesaver!!!
Step 1: Gather the Materials
- 1 x Arduino Nano ($2.70 on AliExpress)
- 1 x DS1307 Real Time Clock ($0.60 on AliExpress)
- 1 x Double-sided Prototype Board ($1.45 for 5 on AliExpress)
- 1 each Green, Red, Yellow 5mm LED ($0.94 for 100 on AliExpress)
- 1 each 270 Ohm, 680 Ohm, 1K Ohm Resistors ($2.35 for 600 assorted on AliExpress)
- White Fluted Stadium Cup ($1 Walmart or Dollar store)
- Push Light or 3-4 AA battery holder ($1 Dollar Store or $0.50 on AliExpress)
- Soldering Iron and Solder
- Solderless Breadboard
- Wire and Jumper Wires
- Glue Gun
Step 2: Setting the Clock
The DS1307 RTC is like a watch and uses a battery to operate and keep time even when the Arduino loses power or resets. The RTC uses the I2C interface to communicate with the Arduino. SCL (clock) is attached to A5 and SDA (data) is attached to A4. The RTC does best with 5V for VCC but I found it ran fine down at 3.3V.
- Using a breadboard, hook up the Real Time Clock to the Arduino according to the schematic.
- Next, download the DS1307RTC Library on github here or in the attachments.
- If you’ve never downloaded a library, click “Clone or Download” and choose “Download ZIP” option.
- Import the library into the Arduino Editor by choosing “Import” and selecting the ZIP.
- Next, download the attached Program_Clock_RTC.ino sketch and import similarly into the editor.
- Set the current date/time in the sketch and run the program to set the clock.
- Verify the correct time is returning.
Congratulations!! You now have a working clock!!
Step 3: Adding the LEDs and Programming
Now, hook up the LEDs and resistors according to the schematic.
Download the Light_Up_Clock_for_Kids.ino sketch and upload. In the loop you will see commented out the “setLEDs(tm.Hour, tm.Minute);” function and uncommented just below a “testLEDs();” function that cycles through each LED for 8 seconds.
Verify cycling through the LEDs works and uncomment the serial.print lines if you need to validate the RTC is still outputting the correct time.
Programming the Times
Once you verify everything is working, uncomment the setLEDs() function and comment out the testLEDs() function. In the setLEDs() body of the function set the times you want to display the various colors following the examples.
NOTE: You will probably have to play around with the resistor values to get the right brightness for your LEDs (and also the power draw you want). I found the following works well for my 5mm LEDS since Green has the highest forward voltage and is the brightest naturally, then dimmer for the other colors:
- Green: 1K Ohm
- Yellow: 680 Ohm
- Red: 270 Ohm
Step 4: Building a Lamp Enclosure
In order to diffuse the light the LEDs emit I tried a few different mediums to enclose the lights. With varying levels of effectiveness I tried a Push Button (LEDs end up too close to diffuse well), Mason Jar with parchment paper or glitter glue painted inside, and the white stadium cup. You need something to diffuse the light and reduce the harshness of the LEDs to give a soft, even glow.
I found the basic white stadium cup ($1 for 3) with wax paper taped just inside (as shown) gave off a good even light. Without the wax paper the LEDs shine directly at the top of the cup creating uneven light patches. Since I plan to use this long term, I even grabbed a silicone nursery lamp I will be re-purposing and adding the Arduino to in the future ($10 on AliExpress).
For More Details; Light Up Clock for Kids – Green Means Go! Red, Stay in BED!!!