Being a programmer just getting started with electronics, I'm wanting to control the speed of an EC fan. They should be very easy to control from what I understand, but I'm not sure how to do it from Arduino.
The wiring diagram shows three wires used for speed control.
Labeled "UN (+)", and is currently connected to 10v on pot.
Labeled "PWM" and currently connected to "ADJ" on pot.
Ground
It seems like most ec motors offer the ability to control speed either with variable voltage or PWM, but looking at a few datasheets I can't see any requirements for the PWM signal other than details about duty cycles. Should one assume that the voltage needed for PWM control would be 10v?
It seems like I'm missing something that would be inferred by some basic knowledge
Would it be possible to simply connect a PWM pin on the arduino directly to the PWM input? Since it is only a control signal, and the motor is driven by 220v, I'm guessing the voltage should not matter that much as long as the signal is strong enough to pick up the duty cycles?
The schematic shows the 'PWN' pin fed with a variable voltage from 10v-0v thru a potentiometer. The actual PWN signals must be generated inside the motor electronics. Feeding a varable 10V signal from the Arduino is not straightfoward. First this is a D/A conversion which is not built in and the Arduino cannot generate 10v. You may consider a digital potentiometer as a solution.
Looking at the diagram it seems like one needs varying voltage to adjust speed, but if that was the only option, why is there a connection labeled PWM?
Surely the pot does not generate any PWM signal?
And looking at similar products they mention the ability to control using either 0-10v or PWM.
For example, this is a diagram from another EC fan: Home | Rosenberg
A digital pot seems like a simple and safe bet, but finding one specced for 10v is difficult.
A very similar question came up a couple of weeks ago. My conclusion was that the control input requires 0-10V but has an internal R-C smoothing network so that a 10V PWM signal of a sufficiently high frequency will suffice. You could use an opto isolator and a pullup resistor (to the +10V pin) to generate the 10V PWM signal from an Arduino PWM pin.
Don't forget to increase the PWM frequency, because the default of 490Hz is probably too low. I suggest you try about 3kHz. Getting accurate PWM at much higher frequencies than that through standard opto isolators is not trivial, although I did manage 25kHz once.
Oh, so you have to have the right duty cycle, frequency and voltage for the PWM signal to work :~
And the manufacturer don't specify any requirements for either of those
No idea how to increase the frequency, so I guess the digital pot might be easier after all, if I can find one that is suitable.
Spindrift:
Oh, so you have to have the right duty cycle, frequency and voltage for the PWM signal to work :~
And the manufacturer don't specify any requirements for either of those
No idea how to increase the frequency, so I guess the digital pot might be easier after all, if I can find one that is suitable.
PWM is variable duty cycle, so the manufacturer does not need to specify that. The fact that you can use a potentiometer implies that you need a 10V PM signal to get the full range. It's just the minimum frequency that we don't know.
There are plenty of pages that describe how to change the Arduino PWM frequency.
Thanks, reading up a bit I see that one can control PWM frequency in software, so that seems to be a non-issue then, as long as the unit does not expect a frequency higher than the opto isolator can handle.