5x62 dot matrix with 120v bulbs and solid state relays?

I want to make a 5x62 dot matrix display using 120v bulbs. There are many guides online on how to set up a matrix with LEDs and cycle through the matrix 100 times a second but I do not think that will work with the relays, even if they are solid state.

I have used SSR boards in the past to control 120v bulbs. In this project there will be 310 bulbs with 310 relays. I hope to make scrolling text with a 3 pixel wide 5 pixel tall font. I want to build a small proof of concept but am not sure on what method is the best.

On the forum there is discussion of shift registers but always in reference to LEDs soldered into a matrix.

What would be a reasonable approach to controlling the 310 relays so I can display scrolling text? Then I can make a text before buying everything else.

Thank you in advance.

310 light bulbs sounds crazy.
I would have done something like that 50 years ago, before the time that LEDs were available.

I think five pixels are not enough to display text.
From memory 7*5 is the minimum, so seven pixels tall.

How big should this display be.
There are 8*8 LED displays including driver available, that can be daisy-chained to more than 20.

Is that what you want?
Leo..

There is no reason to use relays. Remember light bulbs don’t care if they see AC or DC. Just remember it takes about 1/4 second to light and about 1/2 second to extinguish completely. So you scanning frequency has to be pretty slow.

Paul

Paul_KD7HB:
There is no reason to use relays. Remember light bulbs don't care if they see AC or DC. Just remember it takes about 1/4 second to light and about 1/2 second to extinguish completely. So you scanning frequency has to be pretty slow.

Paul

I thought incandescents were out of style now. I'd like to see something like this done with those curly-q CFL's. Now that would be a neat trick. Scanning frequency would have to be about 0.1Hz or something. Make your text scroll awful slow.

Wawa:
310 light bulbs sounds crazy.
I would have done something like that 50 years ago, before the time that LEDs were available.

I will use 60w LED bulbs 110v. They use about 9w each.

Wawa:
I think five pixels are not enough to display text.
From memory 7*5 is the minimum, so seven pixels tall.

Yes, 75 is the usual minimum but some 53 fonts were made for flip phones. It is legible. A very tiny, monospace, bitmap font

Wawa:
How big should this display be.
There are 8*8 LED displays including driver available, that can be daisy-chained to more than 20.
Parola for Arduino - LED Matrix with MAX7219 controller - YouTube
Is that what you want?

This display will be huge. Each “pixel” will be a 2 foot x 2 foot square with a light diffuser in front. The 60 w bulb will light the square. LEDs like the 8*8 panel will not work for this. The entire wall display will be 10 foot tall and 130 feet long.

Paul_KD7HB:
There is no reason to use relays. Remember light bulbs don’t care if they see AC or DC. Just remember it takes about 1/4 second to light and about 1/2 second to extinguish completely. So you scanning frequency has to be pretty slow.

I will be using 60w equivalent LED bulbs at 110v AC. That is why I will use the SSR. I had hoped to find advice on how to set this up with out the “scanning” I want to be able to control all of the bulbs independently since this will not be the typical LED matrix.

Delta_G:
I thought incandescents were out of style now. I’d like to see something like this done with those curly-q CFL’s. Now that would be a neat trick. Scanning frequency would have to be about 0.1Hz or something. Make your text scroll awful slow.

I will be using 60w equivalent LED bulbs at 110v AC not incandescents. These use about 9w each.

How do I set up the relays, or triacs if that is the way to go to be able to control each of the bulbs individually? I can’t wire the bulbs up like the standard LED matrix since they operate at line voltage AC.

Thank you.

Lukinio:
I will be using 60w equivalent LED bulbs at 110v AC not incandescents. These use about 9w each.

OK, so now you don't make any sense. LEDs use DC current. The only reason to even have AC style LED bulbs is that houses are wired with AC light sockets. But for something you are going to build custom there is absolutely no reason to do that and make it harder on yourself. Get the LED elements and build a big DC circuit and make life easier on yourself. If you just want them to look like old-school light bulbs then cut the glass on some old burnt bulbs and mount that over the LEDs. There's no good reason to make it have to run on AC power.

Delta_G:
LEDs use DC current. The only reason to even have AC style LED bulbs is that houses are wired with AC light sockets. But for something you are going to build custom there is absolutely no reason to do that and make it harder on yourself. Get the LED elements and build a big DC circuit and make life easier on yourself. There's no good reason to make it have to run on AC power.

I can get the 60w LED bulbs for less than $2 I do not see how I could beat that and get the same amount of illumination by building something custom and needing to design a light reflector. The bulbs are also easy to replace when the are damaged. I have used these bulbs and relays on many projects and they work well. I know that it is more complicated to use AC but I do not mind that.

Even with 310 "custom" LEDs I would still need a way to control them. Do you have any suggestions other than daisy chaining a bunch of shift registers together?

Thank you.

Lukinio:
Even with 310 "custom" LEDs I would still need a way to control them. Do you have any suggestions other than daisy chaining a bunch of shift registers together?

LED drivers?

Lukinio:
I can get the 60w LED bulbs for less than $2

Yes, and I can get the LED elements from inside of them for much less than a dollar, even from the expensive American distributors. Cost is not a viable reason here.

Delta_G:
LED drivers?

These seem to control pulsing and chasing. I want to be able to control each "pixel" individually so I can make scrolling text and then sometimes turn all 310 on as well as have random flashing patterns.
https://www.1000bulbs.com/category/programmable-led-drivers/

Am I looking at the wrong kind of LED drivers? Which kind would work?

Delta_G:
Yes, and I can get the LED elements from inside of them for much less than a dollar, even from the expensive American distributors. Cost is not a viable reason here.

Do you have a link for those elements? I would still need to solder them to a connector and make an enclosure. That seems like more than $2 worth of labor. I am more that willing to give it a try it it is the better solution. Thank you.

Lukinio:
Do you have a link for those elements? I would still need to solder them to a connector and make an enclosure. That seems like more than $2 worth of labor. I am more that willing to give it a try it it is the better solution. Thank you.

OK, you've got a point there. Building the enclosure might be a bit of work. But is it more work than trying to figure out all the AC switching involved? That I don't know.

I didn't have any one particular led in mind. I've built several LED aquarium fixtures and just know that I can get some really strong LEDs dirt cheap.

Sanity check: 310 * 9W / 120 V = 24 amps AC so you’ll need a dedicated 30 amp power drop to the display… or two 15 amp services.

I’d go with shift registers. That gives you the desired single element addressability but the downside is you need 39 of them… assuming xx595 type 8 bit devices.

You also want your relays/triacs/whatevers to be active low inputs. That way you can blank the entire display during changes by raising the /OE pin on all of the shift registers simultaneously.

These should work fine for your purposes and you cannot build this yourself for these prices:

eBay link

8ChanLL.png

So what’s the decision on the lights - AC or DC?

I have a high current DC current sink board, 1A/channel x 32 channels. Would need 10 boards daisychained.
It’s an SMD version of this (parts went obsolete).

I also have daisychainable relay cards

Both have the shift registers on the card so all you’d need to is a for loop to send out 39 bytes from an array when an update was needed:

for (x=0; x<40; x=x+1){
digitalWrite (ssPin, LOW);
SPI.transfer(arrayData[x]);
digitalWrite (ssPin, HIGH); // any outputs that change will change on this rising edge

You’ll have to work out the mapping between the array and the matrix.
Perhaps have 2 arrays, one with 62 bytes, every 3 addresses making up one pixel.
fontArray:

012 345 678 91011 121314 
 0   1   2   3   A etc.
xxx xxx xxx xxx xxx 
xxx xxx xxx xxx xxx 
xxx xxx xxx xxx xxx 
111 001 111 111 111 
101 001 001 001 101 
101 001 111 111 111 
101 001 100 001 101 
111 001 111 111 101

Use the fontArray to create the to-be-displayed message. Say you send it serially the message to be displayed
“123_AAA_…etc” for 62 characters.
Loop thru the message and build the sequence to show:

messageArray[0] = fontArray[x];
messageArray[1] = fontArray[x+1];
messageArray[2] = fontArray[x+2];

When I did this display, I did a similar lookup kind of thing. Received a message serially and stored it, then parsed it one character at a time and did a switch:case lookup, with two counters, one to track the characters received, one to track where in the 62 bytes the looked up pixel data was going. And adding a byte of 0s between letters and two bytes between words.

You can actually scroll it a lot faster, this was an early speed test.

When you are ready to send to the shift registers, stuff the 5 bits of the 8 bits of every byte into a ‘concatenated’ array to condense it down into the 310 bits that make up the matrix. I’d have to think about how you do that, but it shouldn’t be too hard.

0: byte0 12345 byte1 123
1: byte1 45 byte2 12345 byte3 1
2: byte3 2345 byte4 1234
3: byte4 5 byte5 12345 byte6 12
4: byte6 345 byte7 12345

5 bytes hold 40 bits of data.

Does this make sense to you?

avr_fred:
Sanity check: 310 * 9W / 120 V = 24 amps AC so you'll need a dedicated 30 amp power drop to the display... or two 15 amp services.

Yes, I will have 3 dedicated 20 amp circuits for the lamps to avoid any issues.

avr_fred:
I'd go with shift registers. That gives you the desired single element addressability but the downside is you need 39 of them... assuming xx595 type 8 bit devices.

Thanks, I think this might be the way to go as well even though I need a lot.

avr_fred:
You also want your relays/triacs/whatevers to be active low inputs. That way you can blank the entire display during changes by raising the /OE pin on all of the shift registers simultaneously.

Thank you for the tip. I will make sure the relays are active low. Boards I have used in the past were active low.

avr_fred:
These should work fine for your purposes and you cannot build this yourself for these prices:

I have used those boards in the past and they work great.

If you want to use the 8/16/whatever channel relay cards that need a low input to drive them, then my 12 shift register, 96 output, shift register card could control all the relays using SPI.transfer commands as I described above. Daisychain 4 of them. Folks have used 3 daisychained for driving LEDs in other lighting projects. One was a Yellow Brick Road in a high school play!

Shown here populated for 48 outputs. You can use the onboard '328P to run Arduino code, or connect your own processor to the control pins of the shift registers - clock, data, latch, output enable (or just connect it low).

CrossRoads:
So what's the decision on the lights - AC or DC?

Unless I find a plug and play DC substitute, I will use the AC 60w equivalent LED bulbs that use ~9w 110v AC. I know they will work and are easy to source.

CrossRoads:
Both have the shift registers on the card so all you'd need to is a for loop to send out 39 bytes from an array when an update was needed:

This looks like it will save assembly and fabrication since the shit registers are built in and they are daisy chain-able.

CrossRoads:
Does this make sense to you?

Sort of. I understand the illustrated idea of the 1st array and how the 5x7 grid represents the letters. I am not sure where the determination that it has 62 bytes comes from but I hope to after doing research on arrays. I also do not understand what the "012 345 678 91011 121314" numbers at the top mean.

For the fontArray it seems to be a function that would display the message. I think I understand the concept of that.

I also understand the concept that all this information needs to be sent to the shift registers. Concatenated means merge the arrays together I believe.

That is beyond my programing expertise to write from scratch but I should to be able to figure it out looking at examples.

CrossRoads:
If you want to use the 8/16/whatever channel relay cards that need a low input to drive them, then my 12 shift register, 96 output, shift register card could control all the relays using SPI.transfer commands as I described above. Daisychain 4 of them. Folks have used 3 daisychained for driving LEDs in other lighting projects. One was a Yellow Brick Road in a high school play!

Wow. 4 daisychained together seems a lot simpler than 39 chained together. I will have to learn how these "SPI.transfer commands" work but at least it looks like the hardware will not be a problem.

CrossRoads:
Shown here populated for 48 outputs. You can use the onboard '328P to run Arduino code, or connect your own processor to the control pins of the shift registers - clock, data, latch, output enable (or just connect it low).

So using this I would not need a separate Arduino since it has a controller of its own? Would that be better or would it be best to have an Arduino control all 4 boards.

"I also do not understand what the "012 345 678 91011 121314" numbers at the top mean."

The numbers along the top were an attempt to show the font in memory, so those are the memory locations, 3 bytes for each character.
0,1,2 for the number 0
3,4,5 for the number 1
6,7,8 for the number 2
9,10,11 for the number 3
12,13,14 for the letter A in this example

Normally, I would just commit 1 shift register to each column, but that leaves a lot of outputs unused for your design, and since you need a lot of outputs, a more practical method is needed, hence the concatenation, or bit stuffing, that I also discussed. The mapping just takes some thinking to work it out.

If you make the 3x5 chars as separate modules then each could use 2 shift registers, etc, could be plug-in.
Maybe the extra bit could be used for a dot or bar or brightness level.

As proof of concept, make 4 chars do something.

"So using this I would not need a separate Arduino since it has a controller of its own? Would that be better or would it be best to have an Arduino control all 4 boards."

With Bob's boards you only need the 1 controller on it. You will be getting the bits to set lights ON or OFF out through a very high speed serial channel, 512KB/s fast. Every pattern of lights is just a different pattern of bits you send out. The Arduino is faster, the one on the board is more than enough.

If you go with Bob's boards then 3x5 modules would connect to those. It would save a lot of work.

"If you make the 3x5 chars as separate modules then each could use 2 shift registers, etc, could be plug-in."
I thought I read scrolling tho, so that wouldn't really help I think.

"So using this I would not need a separate Arduino since it has a controller of its own? Would that be better or would it be best to have an Arduino control all 4 boards."

A '328P is a '328P. You can have one on a separate board (an Uno) or you use the one on the board. Plug on an FTDI Basic, and it's the equivalent of an Uno + shift registers. The IDE doesn't know there is anything different.