In this new project I am again using PIC16F628A microcontroller. The goal is simple digital clock with 7-segment LED display and the clock will have no additional functionality – no alarm, no seconds digits, no date. The latter can be added in the software though. For the RTC chip I chose DS1307. For the LED display I used Kingbright CC56-21SRWA.
The main objective of this project is to design a maintenance free and low-cost light which automatically turns on and off at the predetermined time of the day.
To meet the above requirement I designed this controller using ATmega8 MCU and DS1307 RTC. The driver stage of this light controller is intended to work with commonly available 7W LED modules.
This is real-time clock based automatic LED lamp which we originally designed to use as night light. This lamp can programmed to turn on and off at the specific time of the day. For example, it can program to turn on at 6 PM on each day and to turn off at 4 AM next day.
The core component of this project is PIC16F883 MCU and it’s firmware is developed using MikroC Pro for PIC. We select this MCU because of it’s 7 KB flash memory, I2C, UART, E2PROM and built-in 8-bit and 16-bit timers.
There’s no shortage of Arduino-based clocks around. [Mr_fid’s] clock, though, gets a second look because it is very unique looking. Then it gets a third look because it would be very difficult to read for the uninitiated.
The clock uses three Xs made of LEDs. There is one X for the hours (this is a 24-hour clock), another for the minutes, and one for the seconds. The left side of each X represents the tens’ digit of the number, while the right-side is the units.
But wait… even with two segments on each side of the X, that only allows for numbers from 0 to 3 in binary, right? [Mr_fid] uses another dimension–color–to get around that limitation. Although he calls this a binary clock, it is more accurately a binary-coded-decimal (BCD) clock. Red LEDs represent the numbers one to three. Green LEDs are four to six. Two blue segments represent seven to nine. It sounds complicated, but if you watch the video, below, it will make sense.
This isn’t [Mr_fid’s] first clock. He is using a DS1307 real time clock module to make up for the Arduino’s tendency to drift. Even if you aren’t interested in the clock, the mounting of the LEDs with plastic–and the issues he had isolating them from each other–might come in handy in other displays.