Go Down

Topic: 27v Dc motor controlled with a 20khz pulse (Read 1 time) previous topic - next topic


Hello everyone. :) I need to control a motor (little pump (KNF25) to move a liquid. it must be controlled with a 20Khz pulse. It has positive, negative, and control wires. Can I produce and manage this pulses with arduino one or with the shield L293. I am quite new using arduino so I am lost and tangled. Could please someone help me to initialise this project ?. Later the second step wil be to control these pulses with a pressure sensor. Thank you very much.


Can you post the specs of the pump or a link to the pump specs please.
I assume the spec says it has to be 20kHz?

Thanks...  Tom.... :)
Everything runs on smoke, let the smoke out, it stops running....



Here you can check all that I know. Maybe I am wrong and I do not need so high frequency. I want to move ceramic inks density 1.2 gr/cm3 and viscosity around 15cp at 25 *C. I need to move this ink making a depression around -65 mb. It is a common pump used in lot of machines but all the commercial systems you can find are very complex and we need a simple one.


See page 8 and 9 of the manual.
It requires a 0 to 5V control voltage as the graph, shows.
It advises against PWM but a PWM of 500Hz can be used or 1 to 20kHz can be used, depending on the model.
Which is yours?

I don't know anything about these Micro Diaphram Pumps to advise anymore, you may need to chat with a distributor or seller.

Tom..... :)
Everything runs on smoke, let the smoke out, it stops running....


Thanks a lot for your help. Really I do not know, I have some machines working with this type of pumps. I emailed knf pumps staff and they suggested me to use a frequency between 16.000 hz to 20.000hz to avoid noise. If you can advice me what should I do. I am free to use another type of controller, the problem is that maybe I do have enough knowledges to decide which is the right one.. Thanks again


What is that pressure unit, [mWg] ? Haven't seen that before.


What is that pressure unit, [mWg] ? Haven't seen that before.
It's a unit of pressure--Meters of Water Gauge



OK, makes sense, the pump could lift water 3 meters, but when I went to school "W" was Watts.


Dec 03, 2015, 05:45 am Last Edit: Dec 03, 2015, 05:47 am by cattledog
As Tom George says, there are two types of variable speed pumps--the NF25 and the NFB25 with very different PWM requirements. Which are you using? As the manual says, the PWM is not recommended for the supply voltage, and I believe that an L293 controller will be pulsing that.

The variable speed/flow rate is determined by a 0-5vdc input control signal. Certainly you could simply use an adjustable DC power supply to input that.

It would also be possible to use the Arduino and convert its PWM to a 0-5v analog signal with an RC filter. What I don't see in the documents is the current draw of the control circuit, but it should be high impedance and be OK to drive directly with an Arduino pin.

How are you planning to use the Arduino? Will you be changing the pump speed according to a program? How fast will the pump speed need to change? Are you using the Arduino to control dosing? Will the Arduino be used to take measurments?

If the Arduino is only to be used as a variable power supply to set a pump speed/flow rate, I'd get a stand alone DC supply.  If there are other uses for the Arduino, than you could use it to generate a 0-5v analog signal with an RC filter using the standard PWM produced with the analogWrite() command.


Dec 03, 2015, 11:56 am Last Edit: Dec 03, 2015, 11:56 am by MarkT
What that (rather poorly structured and written) data sheet is trying to tell you is that the pump
controller only takes a 0..5V analog control signal.  If you use PWM you will have to low-pass-filter
it first.   It suggests a PWM rate of 1 to 20kHz entirely spuriously, their controller will not see the
PWM so it cannot care.
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]


Dec 03, 2015, 05:59 pm Last Edit: Dec 03, 2015, 06:08 pm by abelgil
Thank you very much for your time. If you advice me, I could contact again with Knf pumps people asking some more specific details if needed. They told me that the motors do not have hold system and that I can control them with 0-5v or with pwm. Maybe MarkT is right and even using pwm the pump only detects the final V. What I can tell you is that in the machine I have they are using 27V in +, -. And they use (CD4093BM : CMOS QUAD 2-INPUT NAND SCHMITT TRIGGERS) and from this they send signal to an LM258 and to the control pin (motor). Really I do not know if the motor is the first or the second I think is 2 because they talked about pwm.16.000hz

Cattledog, you are right I am trying to use pressure sensors, read the value and manage the pulses depending on the obtained values.

Do you think I can do this issues with arduino? Can you guide me please? Do you think that using an RC analog signal pwm as cattledog says it will run? Thank you very much again.


Dec 04, 2015, 02:32 am Last Edit: Dec 04, 2015, 02:33 am by cattledog
Do you think that using an RC analog signal pwm as cattledog says it will run?
I'm sure it will run the pump, but as in all projects, the way to go is going to depend on your requirements, your skills, and your budget.

The issue with a RC filter to generate the DC voltage from the pwm is designing it for the residual ripple and response time you need. It may depend on what you are doing with the pump. What flow variations can you tolerate over what time period, and how fast does the flow need to respond to changes? I think that residual ripple in the waveform will tend to average out over a pretty short time period so it may not really be an issue in practice.

The lowest cost route is to build an RC filter with parts you have lying around the lab, but I'm not very comfortable in the hardware world, so if it were my project, I'd use an MCP 4725 12 bit DAC using i2c on a break out board like this one.  http://www.adafruit.com/products/935
There appears to be a library written for it as well as shown in the tutorial. Sparkfun also sells them, and I've seen the mcp 4725 breakouts on Ebay very cheap from China.

Perhaps the hardware gurus would like to weigh in on an RC low pass filter compared to a 5v DAC like I have referenced for your application.


If the rate of change of the pump rpm isn't expected to vary very quickly, an RC filter is both fine, cheap
and reliable.  With 1kHz PWM and a 0.1s cut-off point in the filter the ripple is tiny and is highly attentuated by
the inertia in the system.  You need to figure out the input impedance of the controller, make sure
the RC filter can drive that impedance and pick component values.  The output impedance of the
filter should be << input impedance of controller.

Lets say input impedance > 100k, then pick 5k impedance for filter, so maybe R = 5k, then C = 20uF for 0.1s
time constant.   Or 4k7 and 22uF in standard values.  Ensure any polarized caps are fitted the right
way round.

The R in the filter also acts to help protect the Arduino from the controller should it blow-up and generate
bad voltages.
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]


 :)  :)  :) Thanks again MarkT and Cattledog for your incredible help. I have already order mcp4725, and meanwhile I will prepare a RC system. Really the pump do not need a high response itmust vary the speed very slowly. I will try to do my best and if it runs I will comment it to you here. Also I can put the final program wherever I can to help someone else. Best Regards and many thanks. :)  :)  :)

Go Up