I’d like to use the Arduino Uno to control a variable frequency drive for the feed motors on a wood grinder. To limit the load on the 50 Hp main motor to its full-load current of 375 amps I thought I would reduce the speed of the feed motors as the grinder motor approached full current. I would sense the current with one of these http://www.automationdirect.com/static/specs/acuampact.pdf current transducers with a 4-20 mA output. I would like to link that output to the Uno analog input, scale and map it to a PWM output, and then condition it so it could be used as a 4-20 mA or 0-10 VDC input to the VFD.

Is this approach reasonable and if so any suggestions on how to analog read the 4-20 mA output and how to convert the PWM to 4-20 mA or 0-10 VDC input to the VFD.

Thanks for any help.

Tony

Is this approach reasonable

To many weasel words to know. What does "condition it" mean?

any suggestions on how to analog read the 4-20 mA output

Back to doing some research for you. The voltage on that current monitor remains constant. The current varies. The Arduino can only read the voltage.

and how to convert the PWM

What PWM?

to 4-20 mA

You already have a device that can output this range of current at some voltage. What conversion do to need?

or 0-10 VDC

Thank you Paul, I will work on rephrasing my post and researching how to use the posted current transformers with Arduion and how to use the PWM output of Arduino as an input to a standard VFD.

Tony

The approach is semi-reasonable, if you know what you are doing.

However, it would be an unreliable lash-up to use an Arduino (a hobby board costing far less than just the industrial grade current transformer you are considering) and the associated circuitry needed to transform the signals.

Would you assemble the glue circuitry on a prototyping board and expect it to operate in a dusty, noisy environment? Consider the expense if that lash-up fails and destroys the grinder.

Hi what type of VSD is it that you want to interface with brand, model? I think you want to read the 4-20mA output that outputs drive current, and get the arduino to output a PWM (which you will have to conditon to get variable DC) to throttle back the drive to keep max possible RPM without overload.

What you will have to be careful of is; 1) the reason for the current going to overload is an increase in load. 2) an increase in load will cause the motor to heat up. 3) slower motor means less cooling (unless it has a separate cooling fan) 4) motor gets hot, possibly too hot. 5) the VSD may have other ideas about what you should be doing.

Tom...... :)

Assuming its a AC powered system (Current transformer transducers don't work on DC)

Take a look at the OpenEnergyMonitor project's GitHub repository, as they have code for handling inputs from voltage a current transducers, they also have basic schematics that show you how to wire them up.

https://github.com/openenergymonitor/EmonLib

Tip. Current transducers produce negative as well as positive currents / voltages so you have to build a simple circuit to bias one side of the transformer output to 2.5V (half of 5V) so the Arduino A2D can read the AC

Then using the OpenEnergyMonitor library its easy to get current and power and even power factor.

But I would also concur, that controlling huge machinery with hobby grade electronics needs to be treated with caution and perhaps build in some additional backup hardware to prevent disaster

Edit.

See this for transformer wiring to the Arduino

http://openenergymonitor.org/emon/buildingblocks/how-to-build-an-arduino-energy-monitor-measuring-current-only

current transformer output is much easier than a current transducer.

the raw signal is voltage, converted into mA, then converted back to voltage.

http://openenergymonitor.org/emon/buildingblocks/ct-sensors-interface

TomGeorge: 5) the VSD may have other ideas about what you should be doing.

the VSD will do everything right and protect itself and the motor first, before listening to the input from a control signal.

makes it easier to control the VSD as you do not have to worry about any of the protection circuits it has.

Hi,

the VSD will do everything right and protect itself and the motor first, before listening to the input from a control signal.

Exactly.

Also the VSD may have an output already setup to represent motor current.

Tom........ :)

To limit the load on the 50 Hp main motor to its full-load current of 375 amps

50 HP are too many HP: be careful.

Regards

Thanks for all the help and information on how it could be done. That is what I was looking for. As suggested I won't use a hobby controller but instead use a PLC with analog, both current and voltage, input and output. I've never programed an analog PLC. I hope they can use instructions like "constrain" and "Map" as Arduino does.

Thanks again. Tony

I hope they can use instructions like "constrain" and "Map" as Arduino does.

I'm afraid not. Please, post PLC model.

Regards

I’m not sure which one I will use but even this cheep one http://www.automationdirect.com/adc/Overview/Catalog/Programmable_Controllers/CLICK_Series_PLCs_(Stackable_Micro_Brick) has all the scaling and mapping. I can’t seen to link the pictures of the setup screens.

50 HP are too many HP: be careful.

There's no such thing as too much horsepower. 8)

I hope they can use instructions like "constrain" and "Map" as Arduino does.

I'm afraid not. Please, post PLC model.

Regards

Looks like it has a (easy programming) "map" function.

Regards

vffgaston:

I hope they can use instructions like "constrain" and "Map" as Arduino does.

I'm afraid not. Please, post PLC model.

Regards

Looks like it has a (easy programming) "map" function.

Regards

Yeah and its "Enable Range Limiter" serves as the " Constrain" function

Tony