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.

Multiplexing project

Status
Not open for further replies.
well only one will be active at a time, but it will loop threw very rapidly so fast that it will seem as if all are on at the same time, like a passive matrix lcd panel basically.


and actually I'm thinking I will need 8 of them per inch so that is 1/8" spacing, however being so tiny, I don't see them producing to much heat, however if that becomes a problem I can step down the looping or cycle rate to balance the heat issue. I think it will work at around 2 or 3 hertz is all, maybe more depending.


what did you mean by the 2^6=64? how would you control 64 points with 6 pins? do you mean using a bigger multiplexer?


Hi,

Well in theory if you have 64 states then you have 64 mutually exclusive states for controlling up to 64 'things'. And 6 bit binary has 64 mutually exclusive states so you could control 64 items with 6 bit binary which requires 6 wires (plus ground). If you had 128 items then you could control them with 7 bits which is 7 wires plus ground.

The method is to decode the 6 bits into whatever format you need to run the items. Since you want to do an 8x8 matrix, then you would use 3 bits for the column addresses and 3 bits for the row addresses, which boils down to two 74LS138 logic packages (or similar). These are 1 of 8 decoders, which decodes 3 bit binary into 8 exclusive lines. There are 8 states available in 3 bit binary so a 1 of 8 decoder would decode 3 of the lines into 8 lines for the columns, and the other would do the same for the rows. There is a slight catch here though, and that is that at least 1 item must be turned 'on' always unless you add a state change decoder (another gate) or else just leave one of the 64 items out.

There are other things to consider that are probably more important though as other members have already brought up. You have to think this out carefully not only about what materials and the quantity that will be needed but also the timing relative to each item. Each item needs a certain amount of time to be activated because the energy delivered to it has a lot to do with the pulse width that it gets. A long pulse width means higher energy, a short pulse means low energy, and if the energy is too low it may not be enough to activate the device. Even LED's have a problem here if the pulse is too short they dont light very brightly so are hard to see except in the dark. This is a common design problem in multiplexing and has to be thought out carefully. It may even mean that instead of doing (for example) one 64 item array, you do them in groups of 32 so that you're actually controlling 2 at a time. Motors respond to pulses by going slower with shorter pulses. Solenoids respond by having less push or pull force. But if you are planning to go to 128x128 you're in for a real challenge :)

What is this going to be, some sort of super dynamic Braille generator?
 
But by using the 1:8 demux's wouldn't I have to have 3 control or select signals for each, or can you connect them together like you can a shift register?
Is there any advantages to using demux's rather then shift registers?


Actually as far as the solenoids go, I found that instead of making a solenoid it would be better to simply have a wire next to a small magnet, and when the wire has applied voltage, it is attracted to the magnet, this requires much less power, however I then realized I actually need each solenoid or point to be closed and then open when activated, and then close again. So i'm sorta stumped now as to what to do. I could have a solenoid with a spring, but that tiny of a spring would be hard to make.


Yes and I know this would require lots of man hours :) I plan on recruiting a couple people, and setting up a miniature assembly line, making each one bit at a time like how they manufacture cars, one person does a specific part, hopefully this will help to cut down on time.

the points will be 1/16 of a inch so sixteen per inch, and a total grid size of 8x8 inches.


Now for the next crazy part :) each point or solenoid is a valve, to retain fluid. Now the the question is if such a tiny solenoid can retain or stop fluid without any leaks.
 
Now for the next crazy part each point or solenoid is a valve, to retain fluid. Now the question is if such a tiny solenoid can retain or stop fluid without any leaks.
It's now sounding more like a dot-matrix printer. In a bubble-jet printer ink is retained by capillary action without leaking. A heat pulse boils the ink to eject a blob onto the paper. No solenoids involved. The downside of valves is that the valve construction time could well be much greater than that of the solenoid coils themselves :(
 
@alec_t: that is a interesting concept however I would need someway of controlling each feed of liquid then.

I know this is kinda getting off topic, sort hear but would this concept still work with a heavier thicker liquid?
 
would this concept still work with a heavier thicker liquid?
You'd have to try it and see. My guess is that the liquid's viscosity, more so than density, would be crucial to success.
 
Considering to boil a liquid would take alot of power, im thinking of just a tiny wire and magnet valve, however I don't know if it would be able to seal off the liquid

So basically a resivore above with tiny tubes connected to it, and each tube has a little flapper type thing that blocks the liquid flow.
 
Another problem I just thought of, if I use the shift registers, and it loads all the bits up and then sends them off all at once, I would have some conflicts, with the activating of points that I don't want to be activated.


So I would have to use allot of low signals or 0's to shift the signal to the desired slot and then send the signal out, this way I can have just 2 signals at a time, one for the row and one for the column.


@MRal: the timing would not have to be very long, I don't think, cause instead of using a solenoid i'm just going to use a U shaped piece of wire that is under a magnet, and when the voltage is applied the wire gets attracted to the magnet above it.

By above the wire I mean like around 1/8 or 1/16 of a inch above the wire.
 
Hi,

I hope you dont need too much force because a tiny U shaped wire wont attract a magnet very strongly. A coil might work though as long as there is enough turns.
Also depends on how much current, but current gets expensive because of the drivers required.
 
its actually the other way around, the wire will be lifted up to the magnet, and it only has to be a fraction of a inch. also i could change the timing so that each point stays open long enough.
 
Since this is quite ambitious anyway, I wonder if you could do something useful with a ferrofluid here - if not as the actual liquid you want to manipulate then as a novel actuator - maybe in little cells or pouches.
 
Im not sure a bubble jet would work because in order to heat it to that point in that small amount of time, would be super hard.


Also would a small U shaped wire that is half a inch long, be able to produce enough current to attract to the magnet?
 
So I would have to use allot of low signals or 0's to shift the signal to the desired slot and then send the signal out, this way I can have just 2 signals at a time, one for the row and one for the column.

Yes. For the selected row, you will send out 128 clock pulses, and 128 data bits. Only one of those data bits will be a one. The rest will all be zeros. The same for the columns, but the ones and zeros will be inverted. A single zero, and 127 ones.

It is up to your software to ensure that there is only a single 'ON' bit in each string of 128 row bits, and a single 'ON' bit for the columns. The data in the shift register chain does not appear at the output pins until the latch line is set at the end of the 256 row and column clock pulses.
 
I've been thinking. If you used the output ports of 40 pin microcontrollers to drive the matrix lines instead of the 74HCT595s;
1) You could use fewer ICs
2) You could speed things up quite a bit
3) Control pulse duration
4) Support special commands like repeat
5) A lot of stuff I haven't thought of
The master computer would send out the 7 bit column address and 7 bit row address. It would be left up to the line driver microcontrollers to determine which lines to drive and for what duration.
 
Last edited:
@BeerBelly: so then I would need rougthly 7 or 8 of these, are they much more expensive?

Could I control pulse duration with the 74HTC595's? because cant you leave each bit latched our signaled until you send another latch signal?

Repeat would be nice, could I do that in the software?

How slow would it be using 32 of the 74HTC595's?


what do you mean by the line drivers?
 
You can run the clock line of the 595s at 25 MHz, which means you can load all 256 bits in about 10 microseconds. How fast of an update rate do you need?

You can control the ouput pulse duration of the 595s by driving the *OE pin. Take that pin high and all of the outputs go high-Z. (All outputs off)

For how to do it with 14 address lines and demultiplexers like BeerBelly mentioned, see post #16 of this thread.
 
@ChrisP58: That is more then plenty fast. I was hoping to be happy with maybe 3 times per second :)

So at 25MHz, I can activate (one by one) all of the grid points, 24 times per second, if my math is correct. so 1,2,3,4,5..... 1,2,3,4,5...... 24 times

Using the demuxes seems like allot more hassle, and would require more of them vs only having to use 8 595's


is 25MHz maxed out or is that a mid range speed?


In reality I think I will only need to pulse twice a second.
 
Last edited:
Yes, 8 or 10 should do it

Yes, the 74HCT595 could control the duration unless you wanted a very short pulse. To turn off the 74HCT595s another wire could be hooked up enable/disable the 74HTC595s.

Yes, repeat would be done in the microcontrollers software.

With 128 by 128 lines. Send data. I'd say your data rate divided by least 260.

By line driver I am talking about the matrix column lines and row lines.

By the way the output ports would supply more current than the 74HCT595s.
 
Last edited:
At 10uS per update, you could hit each of your 16,384 points once about 6 times per second. (0.163mS) You can double the update rate at the cost of 1 more port line. Split the row and column registers into two strings with their own data line. Clock and latch signals are still common to all.

The datasheet lists 25 MHz as the max for -40c to 85c. If you're only running it at room temp, you can go to 31MHz. Since it is totally static, you can run it as slow as you want.

You will need 16 595's. 8 for the rows, and 8 for the columns.
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top