Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

LED Coffee Table

Status
Not open for further replies.
Stellacore - another thing that has come to mind is that I think you'll want to use constant current led drivers instead of fixed resistors. If you ever want (or need) to change the current drive to the leds, a c.c. led driver is the only way to go with this many leds.

You can still vary brightness with PWM - many c.c. led drivers have the ability to vary both current and duty cycle.
 
I'm looking into that dance floor setup. It seems quite simmilar to my coffee table, and I think it wouldn't be too difficult to extend my table design to work on a dance floor as well (the only exception is that my design isnt RGB).

One thing that I noticed about their design is that they are using an I/O expander from Maxim that is designed specifically to drive LEDs. It even has an PWM to vary intensity. I've sampled a few of these and will see how they perform in comparisson to my MCP23016s.

As for my power source, I think I'll probably end up with a computer power supply. Maybe a small compact PSU that fits in those small form factor PCs.

Right now I'm in the process of shopping for LEDs. I've borrowed a bunch of 13000 mcd white LEDs from a friend for testing purposes so I should be able to get a very rough breadboard prototype going in the next few days. I'm looking around on ebay. There is one supplier who I've bought from in the past and I'm hoping he may give me a deal if I buy more than 500 (as well as a bunch of other basic components I'm in need of).

While perusing through the disco dance floor website I had a bit of a cool idea. I've been trying to think of some interesting patterns that I could run on my table that would show off the digital capacity of the table (the original LED coffee table I got the idea from is analog), and I think I found a neat application: Conways game of Life. I'd like to have a mode where the table plays the game of life, and whenever an IR sensor goes from low to high, (or high to low, doesnt really matter), it will insert a glider in the location of the sensor. Could be really neat, but might be tricky to implement.

Other neat ideas could be a simple table sized IR pong game, a signboard, or just "random" twinkling. Let me know if you guys have any neat ideas for different table "modes".
 
I would try and put the power source inside the table, to minmize space
 
I've built a somewhat simplified prototype of one of my boards. It uses 5 of the MCP23016 expanders to monitor 16 of my IR sensors and control 64 white LEDs. All of the expanders are on a single I2C bus, but soon I'll be testing the control of multiple busses with one PIC (shouldnt cause too much of a problem I think, I just have to write a wrapper for my i2c methods that switches between buses).

Right now, I'm using a glass baking dish to simulate the glass that I'll be using for the tables surface. I seem to have found a happy medium of sensitivity with the IR detectors; they are not set off by the ambient light in the room, only by items placed on the surface. However, some items are more responsive than others. For instance, a black roll of electrical tape absorbs most of the IR light so it doesnt trigger the detectors, but anything white or shiny does. The human hand seems to trigger the sensors as well, but not as well as I'd like.

Also, good news on the power consumption issue. The LEDs that I've got seem to be relatively bright regardless of the amount of current. If I put the full 25-30mA through them, they are visibly brighter, but not by much. Right now I'm actually running them at around 5mA and they are surprisingly bright. This means that each slave board draws a max of about 1.5 amps (the IR LEDs on the other hand need approx 30mA each). This means that my entire table should draw approximately 12 amps at 5 volts giving approximately 60 Watts when fully illuminated. The same as an average lamp.

I've taken a really crappy video of my prototype which can be seen here: **broken link removed** (~8mb). I used the video mode on my 3 megapixel digital camera to film this.

My next step will be to add some mosfets so that I can PWM the brightness of the LEDs and also to experiment with multiple busses. I've also been starting to play around with using the 64 LEDs as a scrolling message board. I will also test out my ability to control the I/O expanders on multiple i2c buses. Another issue that I need to fix is to add in some debouncing so that a sensor has to be triggered for a millisecond or two before being considered active/deactive (you'll notice some flickering in my video). Finally, I need to refine my software a bit so that the sensors are read primarily by interrupts, but a global poll as well every once in a while. Once I'm satisfied with the way my prototype is working, I'll go ahead and order my PCBs. I may also need to come up with some kind of PCB or free-form prototype for the IR sensors which consist of the LED, the IR transistor and two resistors (the LED and transistor have to be carefully aimed/positioned so that they work correctly.)
 
hmmmm the vid doesn't seem to work for me?
 
Hiya Stellacore,
Eh mate after reading this thread I reckon thats one ambitious project your on and yet in the last paragragh your talking about ordering PCB's ?. Eh mate go grab a laminator some press'n'peel and some copper clad board and make your own boards. The reason I mention the laminator press'n'peel can be a pain to iron on but by using a laminator it's breeze even for 2 sided boards. All you need to do is print your pcb file on a laser printer fix it to the board and your away.

By the way I mentioned this to the war dept and the response I got was if you want to make something like this why do you need a farm.

Cheers Bryan
 
Stellarcore said:
The LEDs that I've got seem to be relatively bright regardless of the amount of current. If I put the full 25-30mA through them, they are visibly brighter, but not by much. Right now I'm actually running them at around 5mA and they are surprisingly bright.
There are two reasons for that:

  1. The eye has a logarithmic response to light intensity so you need to increase the intensity by a factor of four (I'm not certain of the actural figures this is just an educated guess) for the perceived brightness to double.
  2. White LEDs are more efficient at lower die temperatures which means that you don't gain much by pushing them to their absolute maximum ratings unless the ambient temperature is very low.
 
things said:
hmmmm the vid doesn't seem to work for me?
Hrm... I'll see if I can get it into youtube sometime today.

bryan1 said:
Eh mate go grab a laminator some press'n'peel and some copper clad board and make your own boards.

I've been thinking about making my own PCBs for some projects recently, but I dont think this is one of them that I could do well. There are a lot of traces, and most of them are 8mil width. I made a few PCBs in high school and it was very difficult to do anything but really thick traces. I would be partial to try photo lithography for making the boards, but its quite expensive to buy the photosensitive copper.

Besides, I've been looking around and I've found a couple chinese pcb houses that do boards for pretty cheap, it would end up costing me like $10 per board and I'd end up with the full two sided boards with 8mil traces, professionally drilled, solder masked, and silk screened.


bryan1 said:
By the way I mentioned this to the war dept and the response I got was if you want to make something like this why do you need a farm.
Not sure I follow.. war dept? farm?
 
A Touch-Screen that gets so many finger prints on it that you can't see anything.
 
Looks like a pretty neat project. I wish I had the free time to do something like this.

I just thought I'd point out these chips from TI - https://www.electro-tech-online.com/custompdfs/2007/09/tlc5940.pdf
16 channel LED driver IC with built in current limiting. You could replace your mpc23017's with it and would be able to remove the current limiting resistors.
It has a SPI interface too.
 
I think you can sample those chips, but as SMD.
 
Thanks for the tip jrz126, I've been looking into some other I/O expanders that are specifically meant for LEDs to try.

The other part I've been looking into is the MAX7313 which is also meant specifically for LEDs. Its also I2C and is pretty much the same as my Mcp23017s but also adds the intensity controls. Unfortunately I can only get the part in surface mount packages which is making it a bit tricky to test.

I've got a little SMT prototype board that I've soldered a MAX7313 to but the boards pinout has four lines of headers (two parallel headers on each side of the IC) which prevents me from using it in a breadboard. So, I'm working on soldering some wires to female headers that I can plug into my board (it will be a huge mess, but it should work as a proof of concept).

Unfortunately, because the pinout is a little bit different and the SMT package is a bit wider, it requires that I reroute my PCB almost entirely, but I suppose thats a good thing anyways because there are a few things that I'd like to change on the PCB anyways. But using this chip lets me get rid of the mosfets I had to control brightness and I've also gotten rid of some extra interrupt circuitry (as discussed in another topic) which gives me some breathing room on the PCB. I'm sticking all of my configuration jumpers in one corner now so that they arent all over the place.

Another addition that i need to add is a mechanism to switch off a large portion of the IR leds so that the table can go into a low power mode that switches off all of the white LEDs and waits for something to change before awakening. It doesnt make much sense to be blasting 23W of IR in the middle of the night.
 
I'm almost ready to start ordering components and PCBs for my LED controller boards for this project. The design I settled on is described below:

- 16x10 cm PCB
- 32 1x1cm Sensor board PCBs
- 128 LEDs per board (8 MAX7313s)
- 32 IR sensors per board (2 MAX7313s)
- DS1307 Real Time Clock with battery (to put the display on a schedule)
- PIC18F4455 USB Micro (with USB B connector)
- 8 boards (7 slaves and 1 master) could be controlled by one micro (total of 1024 LEDs and 256 IR sensors).
- All of the LEDs can be activated with several intensity levels to vary brightness.
- To use this as a signboard, each master board could drive two characters (8x8). This may not seem like much, but keep in mind that these LEDs are not multiplexed.

I have been pricing things out, and I believe that I could get all of the components and PCBs for about $75 per master board, and a bit less for the slave boards. This would include all of the board components, IR sensors, and 128 white LEDs. The only thing that you would have to add would be a computer power supply and some stranded wire (lots of it) to connect the LEDs and Sensors to the controller board.

If I could get it for this price, would anybody here be interested in purchasing it with me? I was thinking about making this into an interesting kit and would provide assembly instructions and some basic C code to do something simple like the LED coffee table app or a signboard. Please let me know if anybody here is interested. I'd like to order components soon, the lead time for the Max7313s is a few weeks so the kits would not be ready until mid to late January, but I want to know before I order how many people would be interested.
 
hey core, in addition to the not multiplexing question, why are you using expensive i2c led driver chips?

build your tiles using 74HC595 shift registers for driving rows, and something like a ULN2803A for driving columns. Someone out there used to make a '595 and a 2803a rolled together into a single chip, so you can drive heavy duty leds. of course, the modern 595 can source something like 50-70ma per port.
 
Hrm... thats a good point. The biggest reason that I can think of for not multiplexing is that I dont think it would work very well because of the low duty cycle (1/128), and it would also make it more complex (or impossible?) to change the intensity of individual LEDs.

I guess I should experiment with some multiplexing to see exactly how many LEDs I can effectively multiplex without it looking bad. The entire setup could potentially have as many as 128 columns (8x128), or perhaps I could do 16x64 instead.

With 16x64 I would need 2 74HC595s for the selecting rows and 8 for selecting the column, correct? And then the procedure for activating one row would be for me to compute a 10 byte vector representing the data in the rows and the cols to select , shift it out serially to the 74HC595s which are daisychained as fast as possible, toggle the line on the 74HC595s to latch the data, wait a ms or so and then do the next col?

How large can I really scale this multiplexing setup before it becomes unreasonable? Anybody have any clue? If I were to do it this way and then double or triple the number of LEDs that I decide to multiplex (pass the savings from my LED driver chips to more LEDs instead), how big can it get before it cant easily be multiplexed?
 
I don't think you'll have any speed problems - the 595's are way faster than any i2c; with simplicity comes speed.

The brightness is a bit trickier, but I don't think managing the brightness of 1000+ leds would be any easier with i2c.

you need time domain divison: lets say you divide your time into 16 chunks (4 bit grayscale) ... leds that are 100% get scanned every 'frame', 50% get scanned every other frame, etc etc... so in a sense, you're pwming the leds at the same time as multiplexing them

as far as how large while still looking cool? I guess the closest project I can think of is the hypnocube which is 8x8x8 of RGB leds so 8x8x8x3 = 1536? of course, they're using a damn computer to run the thing, not a puny microcontroller.

https://www.hypnocube.com/
 
Ok I'm missing something, 128 LEDs per board, each board has it's own microcontroller with USB. It would be futile to run at 128:1 duty but you can do a row / column arragement of 8x16 and the drive / power requirements become much more manageable.
A few Maxim 6952 could do all the work and a large matix could be run from a single and small microcontroller.
**broken link removed**
**broken link removed**
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top