Controlling a VFD with Arduino

Hello, I am a senior computer engineering student and have just received my final project. For this project, I need to use a LattePanda with Arduino to control a VFD. While I do have experience with VFDs, all my work has been done with PLC and I have no experience with Arduino.


This project is concerned with a water fountain, the goal is to create a program that reads wind speed as an input and then sends an output to the VFD to raise or lower the frequency. If the wind speed increases, the frequency will lower, in turn lowering the height of the water fountain.

Ultimately, I need help programming this and also setting up communication between the Arduino and the VFD. I have been doing quite a lot of research; however, I could really use some help and I am hoping someone has done a similar project or has some knowledge on the matter, anything is greatly appreciated.

You tell You're in a senior computer engineering project. Then I expect You to be able to read technical documentation and knowing the stuff You want to control.
What is the specific question regarding "Arduino"? Do You have any particular Arduino in mind?
One side is the hardware, I/O. The other side is the software.
Can You be more specific about those sides?

Vacuum fluorescent display?

Sorry, Variable Frequency Drive or an Adjustable frequency drive

I apologize if I do not meet your standards, I do not believe this is an issue of being able to read datasheets. I simply saw this form as an additional resource where I might find someone who has more experience than myself and might be willing to share some insight. I understand my question was broad, so here is a more specific one.

For my output, I planned to use a 4-20mA signal to the VFD to control the speed of the drive. How is this done with Arduino? I have seen some conflicting and confusing answers online.
With that, I would plan to write my program to read the input of wind speed and then output a corresponding 4-20 mA signal to the VFD.

As for the Arduino, the LattePanda is being supplied by the customer, so at the moment I am unsure what I will be using.

Haha, Naughty comment.... However, shortenings now and then leads into misunderstandings...

Your questions is rather well presented.
Okey. Reading a wind sensor, performing calculations and outputting a current loop, 4 - 20 mA output.....
Shurely doable but Arduino output is either digital, 0 or 3.3/5 volt, or PWM at the same voltage levels.

To create 4 - 20 mA will need some electronics between the Arduino and the receiving VFD. Maybe available as an external little board.

Ah, okay. That would make sense why I was finding some conflicting answers. An external board should be doable in this case and I just found a form that has quite a few good resources in creating such a board. I appreciate your help!

For an Arduino to read a current loop I have "ideas" but producing that signal, I've not done it yet. Fiddling with amplifiers, transistors..., buying a ready interface.... I'm blank.

By the way. Does that VFD have alternative ways to be controlled, other ways than current loop?

Oh ok, yes sadly I am not sure what I will be provided yet for the wind sensor. We may be receiving that data from their network, or it may be a physical sensor that is directly attached.

As for the VFD, the speed can also be controlled by a 0 - 10Vdc signal.

Well, I figured - eventually - what he was on about, but in fact the display is probably the more usual question here. :sunglasses:

1 Like

I can't say for sure but creating a 0 to 10 volt signal looks like the favorite. What about noise sensitivity in that signal? Well, filtering is needed and can be done but the response time to changes needs attention.

"I am not sure what I will be provided yet for the wind sensor"

No problem. That's all okey. Input matters is one question. Outputs, like we discuss, is an other. Both are totally separated from each other.
Every controller needs well designed input signal handling, as well as out signals. The middle, the calculation, is pure software, using the well defined in- and out- put signals.

Maybe I could check with you on the 0-10V output portion. I am seeing a lot of resources using PWM. They are then filtering this to get an output range of 0 - 5 volts and then using an Op Amp with a gain of 2 to create the 0 - 10V range. The area of conflict is now the filter aspect. I am seeing many ways of going about this, do you personally have any suggestions? Otherwise, I can look into these forms some more and see what others are recommending.

I think that using PWM, a transistor or two, resistors and caps can produce the 10 volt level You want without OP amp. If ripple is an issue the higher level, using a DAC, could be an alternative.

Yes, I had seen a lot of suggestion for using a DAC and then an Op Amp, but ill keep looking into it. Thanks

I think You can do fine with a standard DAC not buying any beast......
Think about the resolutionen You really need and add one or two bits.

PWM to 0-10volt converter breakout boards are available on ebay.

Or of course, slightly cheaper on Aliexpress. :sunglasses:

Interesting. a 78M12, an LM358 and a PC817 optocoupler. But not quite clear from the image of the back that it actually is optically isolated though it clearly should be.

I am musing on waiting some weeks for one just to figure it all out. :grin:

Hi, @gippy37
Welcome to the forum.
From googling I understand that a LattePanda is a Win10 platform with Arduino capability.
Can you explain more?

Welcome to the awesome goodness that is LattePanda. The LattePanda is a powerful development board which packs all of the features found in a regular computer onto a single board. It's got USB, Ethernet, Wi-Fi, Bluetooth, plus an Arduino co-processor! Yep, that's right, baked into the board is an Atmega32u4 chip as found in the Arduino Leonardo, which is connected to the main CPU, giving you a flexible hardware and software development environment.

Thanks.. Tom... :smiley: :+1: :coffee: :australia:

You can tell we don't do 4-20mA often.
You would need to get a simple module with 4-20mA output.
Simple and easy to use.
Search arduino 4-20 to find exactly what you need.
Tutorials etc.