Arduino CrossFit Timer (Large LEDS)

Post here about your Arduino projects, get help - for Adafruit customers!

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
douglasmauro
 
Posts: 15
Joined: Fri Feb 19, 2010 4:41 pm

Arduino CrossFit Timer (Large LEDS)

Post by douglasmauro »

I wanted to share out my (finally) finished Arduino CrossFit Clock

http://truepathtechnologies.com/blogs/?p=336

.
clock_pic
clock_pic
2012-02-10 at 15.15.47.jpg (90.41 KiB) Viewed 1710 times
.

(here's a snip so others may find it via search/etc)

My first thought was to use the adafruit 16×32 display. This display worked very nicely but I found that I wanted bigger fonts or smaller fonts so I could write more on the one screen. This pushed me to rewrite some code to change fonts. Then I found that my refresh rate was screwing up my IR reads from the remote. As I was reading in a button from the remote, I would refresh and miss the rest of the IR code.

My solution was to use 2 Arduinos! One would be the master refresh and the other the reader for the IR. The slave would bit bang some digital lines and when the master was ready to read it would look and gather up the bits and tell the slave it’s all read. This was a fun challenge as I was burning up digital pins as 4 pins would only give me 16 states (2^4) and I needed some control pins, etc, etc. This actually worked pretty well but I was making things more and more complicated. From here I started to ditch the matrix and move to large LED boards.

Checking online I found some 8″ Large LED displays. Ebay had a pack of 4 for $99 shipped. Sparkfun had a great write up on a wall clock and another one for a BricoClock.

My design quickly changed from the Matrix to LED segments. Issue was common cathode or common anode… no idea! Not to mention that my buying spree had set me up with a bunch of common cathodes and now these large digits were common anodes. After some reading and testing, I found that all this means is that, for common anode (CA), there is one anode pin that all the other pins share. We put +POWER to the common anode and then ground all the others (with resisters, etc, etc) and she’ll light up!

I thought about using the max7219 chip but it needed common cathode (CC) digits and the large ones were CA and that max chip could only handle so much current and I needed to switch the high/low because of the CC LEDs. Now I was onto darlington arrays and UDN2981 and ULN2803 chips

I then tried some SAA1064 4-digit LED display drivers. Tronixstuff did a wonderful tutorial on this. I learned about I2C and all the fun that comes from using those libraries with Arduino.

After all that testing and playing around I needed to start looking at registers and shifting. While there are plenty of great tutorials on shifting (2), none seemed to handle the load of these large LEDs.

I stumbled on a chip called the tpic6a596. Yet another set of numbers and names and this time it was a current SINK chip (which simply means that it just grounds stuff) … my common anode (POWER) leds would hook up to these nicely.

I didn’t find any boards, shields, etc. that would handle this so I figured it was time to design another PCB! In the end, I picked PCB Fab Express for my boards. They turned out great and the price wasn’t too bad. I used the free version of Eagle to design the whole thing. I should say (with my head down) that I did need 1 jumper when the boards came in. The 2 grounds were never connected for some reason. Easy fix though. Another tip is that I printed out the board and taped it on a piece of styrofoam. I then pushed the different components in to see if they fit. This was a HUGE help as many pieces that I ordered were much different than the pkg/layout that I was using on the board.

Locked
Please be positive and constructive with your questions and comments.

Return to “Arduino”