# How can I send full cycle PWM with lower volts?

Hi there!

My first post on Arduino forum =)
I am currently using analog pin 3 on my Arduino Uno to send out voltage from 0 to 5V. I am using that voltage to control the motor and currently I am using this function:

``````analogWrite(pin, PWM_PULSE);
``````

I am using 255 pwm for 5V and 127 for 2.5V. The problem is that PWM is sending full cycle at 255pwm(5V), but on 127V the cycle is at 50% which causes my motor to twitch a little bit.

How can I solve this? I am searching for a way to send full PWM cycle even at lower volts. Is it possible or how can I send STEADY lower volts than 5V to my Arduino pin?

Thank you!

How are you powering the motor, and how is the motor actually controlled by the voltage from the pin? Post a picture or wiring diagram.

You may need a different PWM frequency - the Arduino PWM is quite slow alas.
The timers can be programmed to higher rates, but timer0 is needed as is for
delay() and millis() and micros() to work.

I am controlling the motor via frequency regulator. I can post a simple diagram tomorrow if needed.

With Pwm you only ever get 5v or 0v nothing in between EVER. So you are not getting 2.5v by using analogWrite(x,127). What you are getting is that the pin is high 50% of the time and low 50%. This is NOT the same as 2.5v.

What is a "frequency regulator"? Provide a link!.

Mark

Zaay:
I am searching for a way to send full PWM cycle even at lower volts. Is it possible or how can I send STEADY lower volts than 5V to my Arduino pin?

It's difficult to follow quite what you want in electrical terms. If you want PWM output at a voltage lower than 5V you could connect a pair of resistors to divide the voltage down. If you want a steady analog output voltage you could either add an external DAC, or use an Arduino with an internal DAC, or add an external smoothing circuit to the PWM output, or increase the PWM frequency high enough that whatever is receiving the signal smoothed it for you. Depending what you're trying to control, these answers could be completely off the mark, though. For example, if you're controlling a motor driver that expects a 50Hz servo control signal then you are going about it completely the wrong way.