Components as built on a breadboard |
A lot of my supplies were bought from Adafruit Industries. I've been very pleased with everything I've ordered from them and the tutorials/instructions are excellent. I bought an LCD power supply on Amazon because eventually I'll want to run 12V computer case fans.
Description | Cost |
---|---|
Boarduino | $17.50 |
FTDI To USB Adapter | $14.75 |
16x2 LCD | $9.95 |
LCD Backpack | $10.00 |
Real Time Clock (DS1307) | $9.00 |
12V 6A Power Supply | $8.62 |
Total | $69.82 |
Wiring
Code
I've created a github repo to track the project in general:
https://github.com/dmalec/Project-Masdev
The sketch specific to the LCD RTC clock is available here:
https://github.com/dmalec/Project-Masdev/tree/master/masdev_lcd_clock
Components with logical connections |
- The 5V pin of the Boarduino is connected to the 5v pin of the DS1307 breakout and the 5v terminal of the LCD backpack.
- The ground pin of the Boarduino is connected to the ground pin of the DS1307 breakout and the ground terminal of the LCD backpack.
- The A4 pin of the Boarduino is connected to the SDA pin of the DS1307 breakout and the DAT terminal of the LCD backpack.
- The A5 pin of the Boarduino is connected to the SCL pin of the DS1307 breakout and the CLK terminal of the LCD backpack.
Code
I've created a github repo to track the project in general:
https://github.com/dmalec/Project-Masdev
The sketch specific to the LCD RTC clock is available here:
https://github.com/dmalec/Project-Masdev/tree/master/masdev_lcd_clock
Clock pictured mid second change |
The next step is adding a temperature and humidity sensor to the circuit and replacing the banner output with those readings.
I just finished a similar project using the same RTC module. I've posted my code on github as well - you may find a few useful functions: https://github.com/azrobbo/Arduino-Clock-Seven-Segment
ReplyDeleteOh, cool! I took a quick read through your code - I like the idea of the chimes and the menu. I was also thinking of using the NVRAM on the RTC for storing prefs, nice to see it works well for that and cool idea with the check byte!
DeleteThanks for your feedback.
ReplyDeleteThe sound has been cooler than I ever imagined. Having it beep after initialization is a neat thing (and becomes the "happy sound" if you're having problems in your init code, as I was for a while). Its also useful when clicking the buttons through the menu to get a small audio click as feedback.
After the usefulness, and fun, that I had with it, I've decided to include it on all of my future products. I have a dozen or so very small Citizen brand speaker designed for cell-phones - Model #CHB-04D (8.7mm x 8.7mm x 4mm). I drill a very small hole somewhere in the case and line it up with the small hole in the side of the speaker, then Sugru the whole thing in place. Works great & I highly recommend it!
I also recommend the NVRAM on the 1307; it is super simple, and works well. The only downside is not all other RTC have on-board NVRAM, so it could make it harder to change your design later. For example I was thinking of using the chronodot in another project, so I can use 3.3V. However, I discovered that the chronodot doesn't have any onboard RAM, so I would need to stick it in the AVR's EEPROM instead.
I was an easy fun project. I didnt have any major problems, and you can see the few that I did by reviewing my changelog - which is basically a big log :-).
Good luck!
You're welcome - thanks for sending me the link to your code and for the speaker info - I'll have to order a few of those speakers! Is there a source you would recommend? (I did some googling and checked mouser and digikey, no dice)
DeleteThanks! :)