Electronic – Voltage regulator or resistors to change voltages for motors

motorvoltage

After doing a little research I found out that I can change voltage by either using a voltage regulator chip or resistors. I have a couple different scenarios in which I'll have to drop the voltage for my motors and I was wondering which method to use for each application.

I'm using an H-Bridge to drive a bipolar stepper motor rated at 3.1V. I need the stepper motor's speed to change. Does the H-Bridge in this circuit drop the voltages as necessary to change the motors speed or is it simply able to rotate in either direction at a constant speed? http://arduino.cc/en/Reference/StepperBipolarCircuit

Driving a 7.2V DC motor with a PWM output ( http://www.vexrobotics.com/276-1668.html). I believe I'm supposed to wire up the power and ground of the PWM to the motor's 7.2V power supply and wire the signal wire to one of the Arduino's ports. This motor would also have to change speed.

Running a 12V air compressor.

Although I'd like to use resistors for all of my voltage drops/increases I believe I read somewhere that it cant be used if the appliance its connected to has to change voltages (ex. a motor that needs to change speeds.)

**All of these will be powered by one or more 9v batteries.

EDIT

Thanks! So to summarize what I should do…

Stepper Motor – Wire the inputs to an H bridge with a 3v power supply. (2 AA cells in series) Although I'm planning on giving the stepper motor a seperate power supply to simply things, if I were to run it off the same power source (6 AA cells) as the Arduino, can I use a resistor to drop 9v to 7.2v and than supply that power to an H-bridge? Which would than be connected to the stepper motor.

7.2V DC Motor – Use an h-bridge to pulse 7.2V to the power and ground of the PWM and pulse the signal wire to control the motors speed? Or can I use resistors to drop 9v to 7.2v and than simply pulse the signal wire to control the speed? I'm not sure if the problem with the resistors dropping varying amounts of voltage depending on the motor's load would persist in this scenario. (Kind of similar to the stepper motor scenario except I'm pulsing the motor through a PWM motor controller instead of an H-bridge.)

12V Air Compressor – Wire several cells in series to hit 12V and than turn it on/off by using an H-bridge.

I actually have several 12v golf cart? batteries which can be found here http://www.andymark.com/product-p/am-0844.htm.
If I were to use this, it would be with the 7.2V DC Motor and 12V Air Compressor. (The Stepper Motor is going on a
moving vehicle which is way too weak to carry the battery.) I was thinking about using these batteries but I thought
the amperes it gives out would far exceed what any of my appliances can handle. It'd be awesome if I can use this though!
I'm constantly going through AA/9v batteries and its been getting quite expensive.

****EDIT 2****
This
This is the diagram for the stepper motor circuit. It's set up pretty much the way I'm planning on running it.

This

This is the diagram for the 7.2V motors and 12V air compressor. The batteries shown there is actually a ~12V car battery. I'm still trying to figure out how I'm supposed to drop the voltage to 7.2. I looked at the LM317 adjustable voltage regulator but it can only handle current up to 1.5A and the motor I'm planning on using has a stall torque of 3.6A. The motor I'm using is NOT a servo but it's connected to a 3-wire motor controller (http://www.vexrobotics.com/276-2193.html) which uses a standard PWM signal to drive the motor. My plan is to connect the 7.2V power supply to the power and ground of the motor controller and to connect the motor controller's signal wire to one of the Arduino's ports.

The air compressor isn't shown but I'm assuming I can power it directly through the battery (with an H-bridge in between as a switch).

Best Answer

First of all resistors aren't used to regulate voltages of any significant consumer.

There are several reasons for that, but the most important ones are that the resistor itself is dissipating all the dropped voltage and consuming power. That will have an impact on the battery life. The second equally important point is that resistors drop voltage but they do not provide voltage regulation! The amount of dropped voltage is dependent on the amount of current that passes through the resistor! So if you have a motor running with no load, the resistor will drop one voltage but when you put load on the motor, the resistor will drop higher voltage (assuming your power source can provide enough power and 9 V batteries aren't the best option here, especially for motors).

You can use a potentiometers and rheostats to obtain variable resistors that will give you different speeds for a motor, but the main problem with them is in general potentiometers are designed to dissipate small amounts of power and when adjusting voltage with a resistor, you'll have large power dissipation on the resistor which makes potentiometers unsuitable for directly adjusting voltages of large loads.

Also note that THERE IS ABSOLUTELY NO WAY TO USE A RESISTOR TO INCREASE VOLTAGE!!! This one is important! I'd not go too much into physics behind that here, but I think that the idea is basically equivalent of truing to produce oil by pushing your car backwards.

On the other hand, the linear voltage regulators behave like a special type of resistor which automatically adjusts its resistance (within certain range) so that the output voltage is (more or less) constant. They too dissipate the extra voltage as heat and aren't a good solution for large loads especially on battery power. Voltage output of linear voltage regulators can be controlled (on some regulators) and you can use them to control speed of a motor.

Now about the voltage drop using H-bridge: It's a bit more difficult to explain, but the main point is that when analyzing voltage coming to a motor you have basically two voltages: voltage in a single moment of time and average voltage over some time. Usually with H-bridge circuits, you're providing full instantaneous voltage to the load, but you're constantly turning the load on and off. This happens so quickly that the average voltage will look like a voltage lower than the input voltage and that way you can provide speed control for a motor by changing the time during which the motor is provided full voltage and time during which the motor has no power. The main advantage of that approach is that you are wasting very little power for voltage regulation. The transistors in an H-bridge will usually have low on resistance and when they're on, they are fully on and when they're off, they are fully off, so only little power is dissipated by them.

Another way of getting the right voltage is to use a switch-mode regulator. They are often more complicated and require more components or are more expensive if they come in same form factor as linear regulators. The good sides however make them very interesting. They can (depending on specific device) decrease or increase output voltage compared to input voltage and they waste very little energy as heat when doing so. They produce more noise on the output than linear regulators too. Anyway as far as motors are concerned and as far as I can see, there is no major benefit to use of switch-mode regulators compared to say PWM, since motors can survive short exposures to higher voltages with no problems at all (as long as the time is short enough so that the current is below the maximum rated current for the motor).

Now about that PWM motor controller: In general you'll need at least two wires to control it: ground wire to provide reference or ground voltage and a signal line. So if you're going to use an Arduino, you'll need to connect the negative sides of the controller's power supply and the Arduino together and you'll need to find the controller's signal line and drive it with PWM from Arduino.

Next, I see you mentioned stepper motors. They are usually controlled not by traditional H-bridgees but by stepper motor controllers. Basically a stepper motor has several inputs which control individual windings on the motor. You need to provide power to each winding in turn so that the motor will rotate. The speed is controlled usually not by voltage directly but by the amount of time each winding is energized. So to increase the speed of a stepper motor, you "simply" need to switch between the windings faster.

Now a little bit about the 9 V batteries: They are in general a poor choice for running any significant consumer because they are usually constricted by having 6 1.5 V cells connected in series. The cells themselves are very small and have low capacity which limits the capacity of the entire battery. This also affects the maximum current the battery can provide and since motors are significant consumers, the lifetime of a single battery will be very short. Some better options are to get say 6 AA (or C or D) cells and connect them in series for much higher capacity and higher maximum current. Another option (which could be much more expensive if you don't have the appropriate tools) would be to get a 12 V battery, such as a car battery and then recharge it or to get a 3 cell lithium-polymer battery or to get 6 cell NiMH battery.