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.

mrn

New Member
Hello this is my first post on this forum, I have a question and I have a diagram which I will let explain my problem (assuming you know somewhat about multiplexing)

**broken link removed**

Is there any way around not having to have 9 Control Signals?

I'm using a parallel port, so as few pins as possible is better.

Also I should note that this is a very tiny version of what I am trying to do, my actual full idea is the same but with a grid of 128x128 or bigger.

Also each little dot in the grid is a motor.


thanks :)
 
You can have any number of outputs using a serial approach.
Shown in the image below.
Outputs.GIF
By the way, 128 by 128 is a lot of motors.
 
yes :) that is allot of motors, i'm actually thinking now to use solenoids

but for each of the 74HC595 wouldn't you need 3 control signals?
 
The data out(pin 9) from the first 74HCT595 would go to the data in(pin 14) of the next 74HCT595.
The Clock would go to pin 11 of every 74HCT595.
The CS/Load would go to pin 12 of every 74HCT595.

With the 3 control wires mentioned above you can output as many lines as you want.

Procedure
Data is presented to the first 74HCT595...a Clock pulse is sent out which sends the data to the right one position...
Again
Data is presented to the first 74HCT595...a Clock pulse is sent out which sends the data to the right one position...
Again
Data is presented to the first 74HCT595...a Clock pulse is sent out which sends the data to the right one position...
And so on until all positions have been filled.
Then a pulse is sent to the Load(pin 12). This latches the information to the output lines, which will stay on the output lines until the next Load pulse.
 
i'm actually thinking now to use solenoids
You must be in the military or have a rich uncle. Even at $3 a pop you're looking at a cost of ~$50k :)
 
@alec_t I will be making the solenoids my self, they are going to be very tiny, very low power, smaller then the size of your fingernail.


@bearbelly, so basically there is a clock that knows where to send the control signal?
 
I will be making the solenoids my self
I admire your dedication and stamina! Assuming each one takes 1 hour to build and you work an 8-hour day 7 days a week that will take you 5.61 years by my calculation :).
 
@bearbelly, so basically there is a clock that knows where to send the control signal?
The computer will need to determine which lines to activate in the matrix.
Example
A 128 line matrix(64 x 64). The first 64 lines will be colums and the next 64 lines are rows.
Solenoid 14 bottom row needs activation.
The computer(uC) puts a high on the data pin, the computer(uC) pulses the clock line 13 times.
The uC puts a low on the data pins and sends 1 clock pulse.
The uC puts a high on the data and sends out 50 more clock pulses.
This completes the column information.

The uC puts a high on data and sends 1 clock pulse for the bottom row.
The uC puts a low on data and sends 63 clock pulses.
This completes the row information.

The uC sends a load pulse which latches the information to the matrix lines.
The trouble with a matrix is that only one row of solenoids can be active at one time.
 
That is ok as long as it goes fast enough it can activate one at a time. However using this method, would I need alot of the 74HC595's to controll a 128x128 grid or bigger?
 
@beerbelly: first off thanks for your patience and helping me with this :) So basically you can load up 1's and 0's in the first 74HTC595 and when you latch it, the 1's and 0's go to the next 74HTC595, and the CS is basically a gate, restraining the data from being latched. Correct?

Is the data another word for latch, or to send the stored bits out? or is it to enable a 1 pulse when the clock "ticks" if this is so then where is the latch signal or does it just go out every time the clock "ticks"?

if each 74HTC595 is connected in series, meaning each clock is connected to the previous clock, then if you "tick" the first clock, wont it "tick" the rest of the 74HTC595 clocks at the same time?

So say I do a 0010000 it would pulse the third pin on the first 74HTC595, then would would stop it from sending that same signal to the next 7HTC595 and so on?

or is that what the CS is for? so you send a string of bits to the first 74HTC595, followed by a CS pulse witch stops the first 74HTC595 from outputing those bits to the second 74HTC595?



I found the 74HC595's for 20 Cents here: https://www.taydaelectronics.com/74...ster-ic.html?gclid=COG_1bT7u7YCFeZxQgod5HIAHA
However I dont how reliable the site is or not.

Also what about using a 1:16 demultiplexer? or would this start that control signal problem I stated before?

Also if if I did a 128x128 grid it would require 32 of these 74HCT595's 16 for the rows and 16 for the columns. This doesn't seem very efeciant, or am I wrong?

However so far your system of doing this seems the most simplistic so far.


Also if I did a 128x128 grid and say I had 4 "cells" or grid points per inch, that would make for a 32" x 32" inch grid
 
Last edited:
Hi,

2^6=64, so you only need 6 wires plus ground (parallel).

If you do serial, then 2 wires plus ground.
 
How many of your solenoids are likely to be active at any one time? Heat dissipation could be a problem at 1/4" spacing.
 
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?
 
@beerbelly: first off thanks for your patience and helping me with this :) So basically you can load up 1's and 0's in the first 74HTC595 and when you latch it, the 1's and 0's go to the next 74HTC595, and the CS is basically a gate, restraining the data from being latched. Correct?
The 1s and 0s go into the data input of the first 74HCT595, out the serial output of the first 74HCT595 and into the data input of the second 74HCT595 and so on. It will take 256 clock pulses to fill all 32 74HCT595's. When all all the 74HCT595's are filled a single Load pulse is sent,this puts the 1s and 0s which are now stored in the 74HCT595s onto the matrix lines all at once. The matrix lines will continue showing these 1s and 0s until 256 more data are clocked in and another single load pulse puts something different onto the matrix lines.
 
I think Mr Al means you need 6 bits of data to reference any single solenoid.

I was just thinking about how you are going to wind so many tiny solenoids! Do you have a Plan? - If not, for starters, I would think about putting as many formers as I could fit on a single long spindle with a handle on it, have a length of wire pre-cut for each one, and wind them all at once. Of course this may be rubbish idea in practice!
 
Another thing you need to look at, is how much current your solenoids will take. The CD74HC595 outputs are rated to source/sink 35mA. As long as the solenoids need less than that, you should be able to drive them directly. If they need more current, you will need some buffer transistors. Make sure though, that you put protection diodes across each coil.

Did you notice that Tayda Electronics is located in Bangkok, Thailand. You list USA as home in your profile. Tailand seems a far away place for you to order parts from. I would suggest trying DigiKey, Mouser, or Jameco. There are also other suppliers listed in the . thread.

You could do what you want with fewer 16 output demultiplexers. You could use 8 74154 for the row driver, and 8 more for the columns. But you will also need some decode logic to select which of the 8 74154s is active. The 74HC138 would do that. This scheme would need 7 bits for the row address, and 7 more bits for the column. Also, you won't be able to drive both the row and columns directly. One edge of the matrix will need an inversion on each of the 128 lines. This is because all the outputs of the 74154 are high except the selected line.

As I see it, using demultiplexers would actually be a more complex approach than using the 74HC595 shift registers.

Note: The numbers above are for your expanded 128x128 matrix.
 
Last edited:
I think it will work at around 2 or 3 hertz is all, maybe more depending.
Have you done the sums? If the solenoids are active one at a time then even if the activation time were 1ms (unrealistically low IMO) the time to cycle through the matrix would be ~ 16 sec :(

Edit: Throbscottle's idea to wind several solenoids simultaneously is good. Ten at a time per hour would reduce the manufacturing time to ~ 6 months.
 
Last edited:
Further thought - cut a piece of cardboard with pinholes in it aligned with each former, feed the wires through the holes. You can move the card side to side as you wind to control the layering of the windings - it's not actual layers, but it's more even at least. With a bit of imagination you can modify to control the tension too. (I used to wind coils a lot when much younger. You could say I was a real wind up...). Diligence is everything here.

I think you could manage more than 10 per hour, but 10 on the spindle at once sounds like a realistic limit to begin with - you would increase it as you gained experience. You would probably need 5 minutes to set up the wind for each batch, 5 to 10 minutes to do the actual winding, 5 minutes to secure the windings with tape and unload. This just leaves flying leads of course, no termination. 3 batches per hour if you are quick then - so in 8 hours you get 240 little solenoids, your eyes have gone funny and your fingers are sore, and you've forgotten to eat. After a few days of this you lose the will to live. Still a long way off 16384 though... Goodness, that's an awful lot to assemble afterwards too. Not wanting to rain on your parade or anything :eek:

That's also an awfully large amount of magnet wire - costly.

What you really need is to borrow some children, give them a little bit (so make it a bit that really counts for your time) to do each to help with your big project (kids love being helpful) and hope they don't get too creative. You also have to remember where each individual one of their parts is because they will ask when it's finished. Of course, it may take longer than doing it all yourself, but hey, you get to teach kids some technical skills!

You don't have to do everything in powers of 2 - you could pick a more manageable number. You just adjust your data to fit. OTOH powers of 2 make the most efficient use of your binary space.
 
@throbscottle
so in 8 hours you get 240 little solenoids, your eyes have gone funny and your fingers are sore, and you've forgotten to eat. After a few days of this you lose the will to live. ....What you really need is to borrow some children,...
I see you've entered into the spirit of things :). I wonder if the OP realises just how big a task this is? Even allowing 20 sec per coil, assembling the matrix alone will take ~12 days @ 8hrs/day.
 
Then there is making the whatever it is with thousands of locations for them all to hold them in place, along with whatever it is they actuate and the mountings/bearings for those. Of course the solenoids may also need cores... You need an awful lot of children...

Am I the only one just dying to know what this project is? (I'm guessing a relatively high res electro-mechanical dot matrix display.).

8 per inch isn't 1/8th inch spacing if you mean square inches. Or do you mean 8 in a row, in which case it's 64 per square inch? In which case you could wind them directly onto a steel wire spindle like a straightened out paperclip and separate them off with wire cutters, if you don't mind sharp pointy ends on your solenoids. That way you get a core which can also serve as a mounting pin.
 
Last edited:
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top