Maker Pro
Maker Pro

HELP: Need circuit for high current control based on analogue voltage

timbo_uk2002

Dec 15, 2013
6
Joined
Dec 15, 2013
Messages
6
Hi,

I'm hoping there is some nice person out there who will help a newbie. I'm trying to find a solution to supply a variable current to a coil which is directly proportional to a variable analog voltage as the input. The final application is control of a pair of galvos at high speed.

The input for this will be a 0-5V analogue signal from initially an Arduino (so 40ma). Programming is my thing so no need to worry about that... but how do I control the current rather than the voltage? I understand that transconductance ICs like the LM13700N would be great but 600uA isn't enough for powering a small electromagnet, I'd guess 200-500mA is more realistic.

The coil in question is indeed small, <2m of 27swg copper with a negligible resistance (0.2ohm). I'm using two of these in combination to displace a 10mm neodymium magnet which is attached to the shaft on which my FF mirror is attached. The total mass / inertia to handle is very small, but there needs to be no doubt about it shifting quickly, hence needing a good powerful current in the coil.

Please can you be sensitive to the newbie thing, the lower the component count the better :)

Many thanks in advance,
Tim
 

jpanhalt

Nov 12, 2013
426
Joined
Nov 12, 2013
Messages
426
The term you probably want is "pulse-width modulation" or PWM. Circuits vary in complexity from simple comparator or 555 circuits to more complex designs with soft-start and other enhancements.

John
 

timbo_uk2002

Dec 15, 2013
6
Joined
Dec 15, 2013
Messages
6
Thanks John. Varying a pwm signal this fast is going to be a problem for the arduino. Yes the atmega328 can do fast pwm but it is only a 16mhz chip and much of that is going to be busy on even simple vector graphics. Blasting a 0-5V signal to an analogue pin and engineering a solution to handle the current seemed simpler?
 

BobK

Jan 5, 2010
7,682
Joined
Jan 5, 2010
Messages
7,682
Thanks John. Varying a pwm signal this fast is going to be a problem for the arduino. Yes the atmega328 can do fast pwm but it is only a 16mhz chip and much of that is going to be busy on even simple vector graphics. Blasting a 0-5V signal to an analogue pin and engineering a solution to handle the current seemed simpler?

How fast are you talkiing about? You do know that an electromagnet coil will have a high inductance, and therefore, the current cannot change rapidly? Actaully, I should say that it requires a very high voltage to make the current change rapidly.

Let's say the coil is 1 Henry, which I thik is within range for a small electomagnet. With 1 Volt across that coil the current will take 1 second to change by one amp. Or perhaps more to the point, 1 msec to change by 1 mA.

Bob
 
Last edited:

timbo_uk2002

Dec 15, 2013
6
Joined
Dec 15, 2013
Messages
6
Thanks Bob, I was trying for something in the kHz range (10 khz or less)... from what you are saying it sounds like im off kilter with a fundamental concept with my plan.

Maybe im going to have to go back to the spec sheet on the atmega and see how fast I can get the pwm going (and pursue John's suggestion). The chip has the ability to hit the registers directly and that often opens up performance above that which is exposed by the normal libraries.
 

timbo_uk2002

Dec 15, 2013
6
Joined
Dec 15, 2013
Messages
6
Thanks Bob, I was trying for something in the kHz range (10 khz or less)... from what you are saying it sounds like im off kilter with a fundamental concept with my plan.

Maybe im going to have to go back to the spec sheet on the atmega and see how fast I can get the pwm going (and pursue John's suggestion). The chip has the ability to hit the registers directly and that often opens up performance above that which is exposed by the normal libraries.
 

BobK

Jan 5, 2010
7,682
Joined
Jan 5, 2010
Messages
7,682
In a 1H coil, you could only change the current by 100uA per applied Volt in the period of a 10KHz signal.

To put 1A through it with a 10KHz sine wave would require 62,832 Volts.

What are you trying to do? It this some alternative healing device?

Bob
 
Last edited:

timbo_uk2002

Dec 15, 2013
6
Joined
Dec 15, 2013
Messages
6
What are you trying to do? It this some alternative healing device?

Bob
... I wish, for those with no morality there's gold in quackery. No, I'm trying to accurately position a mirror at very high speed for use with a ttl laser. My laser driver does 20kHz, so I have 10k points to play with per second, divide that by 24fps and that means I can project a simple moving image with 416 vertices. Even at 20fps and 100 vertices per image that is still 2000 moves I need that mirror to make per second.

This has to be possible somehow because commercial versions of this exist... but I wanted to do this on a budget sufficiently low that anybody in the hacker community could copy it. I was hoping that by keeping the mass in the mirror magnet assembly tiny I could keep the coil tiny too and not hit the problems such as those you've enlightened me about!
 

KrisBlueNZ

Sadly passed away in 2015
Nov 28, 2011
8,393
Joined
Nov 28, 2011
Messages
8,393
Hi Tim and welcome to Electronics Point :)

You can control the current through a load (instead of the voltage across it) using an amplifier whose feedback is taken across a resistor that's connected in series with the load. The problem is that you cannot simply apply a current to an inductor, the way you can simply apply a voltage; current in an inductor takes time to build up (and to reduce).

The formula for current in an inductor is:

dI / dT = V / L

dI = change in current;
dT = time interval;
V = voltage across inductor;
L = inductance in henrys.

This formula tells you that if you want a rapid change in inductor current (i.e. dI/dT is large), you need a high voltage and a low inductance. Assuming your inductance is fixed, the need for a high voltage is the problem. If you can limit the maximum needed rate of change of the inductor current, a small power amplifier with current feedback might be workable.

Since your inductor is an electromagnet, its characteristics are going to be more complex than a simple inductor, because of the effect of the movement of the neodymium magnet, which will also induce a voltage into the inductor. This is outside my experience and you would have to do some experimentation.

Try to do some research using Google. A similar application would be the magnetic seeking circuitry in a hard drive, which uses a flattened inductor, sometimes called a "voice coil" (by analogy with loudspeakers) sandwiched between two powerful magnets. This has a similar issue with mechanical inertia. There are some pretty high-tech driver ICs made for hard drives that might be appropriate for your application.
 

timbo_uk2002

Dec 15, 2013
6
Joined
Dec 15, 2013
Messages
6
Hi Tim and welcome to Electronics Point :)

You can control the current through a load (instead of the voltage across it) using an amplifier whose feedback is taken across a resistor that's connected in series with the load. The problem is that you cannot simply apply a current to an inductor, the way you can simply apply a voltage; current in an inductor takes time to build up (and to reduce).

The formula for current in an inductor is:

dI / dT = V / L

dI = change in current;
dT = time interval;
V = voltage across inductor;
L = inductance in henrys.

This formula tells you that if you want a rapid change in inductor current (i.e. dI/dT is large), you need a high voltage and a low inductance. Assuming your inductance is fixed, the need for a high voltage is the problem. If you can limit the maximum needed rate of change of the inductor current, a small power amplifier with current feedback might be workable.

Since your inductor is an electromagnet, its characteristics are going to be more complex than a simple inductor, because of the effect of the movement of the neodymium magnet, which will also induce a voltage into the inductor. This is outside my experience and you would have to do some experimentation.

Try to do some research using Google. A similar application would be the magnetic seeking circuitry in a hard drive, which uses a flattened inductor, sometimes called a "voice coil" (by analogy with loudspeakers) sandwiched between two powerful magnets. This has a similar issue with mechanical inertia. There are some pretty high-tech driver ICs made for hard drives that might be appropriate for your application.
Great reply, thank you very much, this is a great stuff.

I've certainly learnt a few things here, so if nothing else chaps you've all helped me in the right direction, but now I think I need to study more about current in coils... prior to this forum I'd no idea it was such an interesting corner of electronics!
 

BobK

Jan 5, 2010
7,682
Joined
Jan 5, 2010
Messages
7,682
... I wish, for those with no morality there's gold in quackery.
Sorry about the implication, but we do get such nuts here.

Yes, you coil might be much less then 1H for that purpose if the mirror and magnet are small. But you will definitely have to take inductance into effect.

Bob
 

KrisBlueNZ

Sadly passed away in 2015
Nov 28, 2011
8,393
Joined
Nov 28, 2011
Messages
8,393
I should have suggested: you may find it a lot easier to keep the magnet stationary and move the coil around. Much less mass to accelerate.
 
Top