Go Down

Topic: H-Bridge, Multiplexing /Charlyplexing Problems (Read 1 time) previous topic - next topic


Hope this Subforum is correct for my questions.
Finally I need a board thats very small and very low power consumption. I want to drive 15 Lavet-Motors, which meens to power a electromagnet both directions. (speed isn't an issue, because the motors need only to perform about half a step a minute, so I can power them one after the other).
I understand how Multiplexing, Charlyplexing and H-Bridges work. But I somewhat can't get the clue how I can combine this (if possible at all). Somthing like replace the two corresponding LEDs in Charlyplexing with a H-Bridge.
What actually should work is buildung a H-Bridge with optocouplers instead of transistors. (than I can place the LED Part of the optocouplter in the Charlyplex Matrix). But I don't know if optocouplers are to work directly in the "high" voltage circuit, or need an extra step with transistors/MOSFETs?

I already think about, if thats the compleedly wrong path and I should thing about using a Atmega2560-Chip based board instead of messing around with Multi-/Charliplexing.

Maybee someone can help me sorting this out..


I think you may be able to drive them directly from 8 Arduino pins (4x4 matrix).  Leave all 8 pins set as INPUT (not driven high or low) between pulses.  To turn the motor in one direction, set the row pin to OUTPUT,HIGH and the column pin to OUTPUT,LOW.  To turn in the other direction: row LOW and column HIGH.  Set the pinmode() for both pins back to INPUT when the pulse is over.  Use the delay() function for the pulse and make it as short as possible without missing steps.  I don't know if pinmode() will disable the internal pull-up resistor when the mode is set to INPUT.  If not, you may need to set the pin to LOW after changing the mode.

This is the same sort of multiplexing one would use with the old Red/Green LEDs that lit red or green depending on the direction of current flow.
Send Bitcoin tips to: 1G2qoGwMRXx8az71DVP1E81jShxtbSh5Hp


You can't turn them in different directions, that's the whole point of a Lavet motor - they only turn one way but need bidirection drive.

Unfortunately Charlieplexing only works with LEDs, it relies on a single LED forward drop being lower than the voltage required to make two in series glow at all.

You can't use diodes because the motor requires pulses of both senses.  The best you can do is an m x n array of motors driven by m+n pins as the previous poster mentions.  If they require more current than 30mA or so then you will need to implement Tristate buffers in some form.
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]


Oops, my mistake.  I misunderstood the diagram in the Wikipedia article.  So it's positive polarity for 1/2 turn and negative polarity for another 1/2 turn.  The article also says there has to be a period of no power between pulses.
Send Bitcoin tips to: 1G2qoGwMRXx8az71DVP1E81jShxtbSh5Hp


Yes it has 4 phases in operation, 2 powered and 2 unpowered (using cogging).  Cogging is where the magnet circuit is providing soft detents in position (only possible in a motor with permanent magnets).
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]


The power of 5V/30mA aren't enough to pwer the magnets, so I have to do some sort of amplification to drive it.

So I see two ways to get this done:
1) charlyplexing (sort of)
So I think using optocouplers would be able to do the triggering side as charlyplexing (because we have LEDs on that side) and the "power" side shoud work in H-Bidge mode. I have then 2 parallel LEDs in every "charliplexed" state, what should work, because they don't need more voltage than one.
2) matrix:
But there I get a bit lost how I can drive a H-Bridge from a matrix.

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131