Arduino 7 segment Displays Digital Clock With Charlieplexing LEDs
This is my second instructable. I just had a mood of making a digital watch. But wanted to make it a learning process. I already had a sanguino i could have easily used that Atmega644 chip. it would have been more than enough. But i wanted to try burning a Arduino bootloader and see if i could make it work. Well i did. I used a Atmega168 for this project.
I used 4 seven segment displays to display time in 24hr format. Here ii experimented with common anode and common cathode. Now i wanted to use other chips too and not just the Arduino which would have been the easier option. The chips i experimented with are 74LS47, 74HC154, 74HC595 ,4511 and 74HC139. The final compatible combination was common cathode with 4511 and 74HC139.
I used a RTC chip DS1307 to feed the time to the Arduino. I initially wanted to use millis() function in Arduino but it is not that accurate. Using RTC not only saved long coding but also has an added advantage of keeping the time in case the external supply is cutoff. It uses a 3v battery to do this.
Now I have used LEDs to point the time as minute and hour hands would do in an anolog clock. 60 Bi-coloured LEDs total which work on Charlieplexing.
Well if you are interested onwards you go.
Step 2: Circuit
I have made the circuit in Eagle but sadly I am not that proficient in using the software (Which is next on my “TO LEARN” list) so I didn’t make the board. I have attached the schematic i made on Eagle. U can use it to make the board.
I used Express PCB to create the PCB. I have also attached this .pcb file here. You can either print this file directly and make a pcb from a copper clad or build a board from Eagle and get it made professionally.
1) In express PCB file I’ve used JMP at some places. It means you have to use wires to short the two pads. This was necessary since i used a single sided PCB. Confirm where to connect wires from the circuit diagram.
2) At digital pin 0 and 1 i have used jumpers. This is VERY IMPORTANT as the LEDS have to be disconnected from these points as they are RX and TX pins. LEDs if connected while uploading the program will use up the voltage and hinder the uploading. I learnt it the hard way. So i made changes afterwards. So while uloading Remove the jumpers thus effectively disconnecting them from LEDs and replace them once the uploading is done.
Step 3: LED circuit
The PCB that i have built does not include the Charlieplexing LED circuitry. I made the 12 round tracks using a waterproof marker and compass.
IMPORTANT POINTS TO REMEMBER
1) The outermost track is 16cm in diameter.
2) The innermost track is about 12.5cm in diameter.
3) These diameter specifications you can vary as long as the total width of 12 concentric tracks does not exceed the length of the LED leads or you won’t be able to solder properly.
4) The actual placement of the LEDs was done manually i.e without the help of computer. I found it easier and faster.
5) Do not make any hole pads for the LEDs before etching. Just be sure to make the concentric tracks thick enough so after drilling they wont get disconnected completely.
Now etch the PCB. See the Image for what it should look like.
For more detail: Arduino 7 segment Displays Digital Clock With Charlieplexing LEDs
JLCPCB – Prototype 10 PCBs for $2 + 2 days Lead Time
China’s Largest PCB Prototype Enterprise, 300,000+ Customers & 10,000+ Online Orders Per Day
Inside a huge PCB factory: https://www.youtube.com/watch?v=_XCznQFV-Mw
This Post / Project can also be found using search terms:
- arduino home automation projects
- home automation arduino projects
- digital clock using arduino and seven segment
- arduino 7 segment clock