Arduino Application: Speed control of small DC Motors

advertisement
Arduino Application:
Speed control of small DC Motors
ME 120
Mechanical and Materials Engineering
Portland State University
http://web.cecs.pdx.edu/~me120
ME 120: Speed control of small DC motors
Fall 2013
Learning Objectives
• Be able to describe the use of a transistor as a high
speed switch
• Be able to build a breadboard circuit that uses a
transistor as a high speed switch
• Be able to explain the role of a snubber diode
• Be able to implement PWM speed control of a DC motor
• Additional references:
❖
❖
❖
Circuit 12 (p. 64) in the SIK manual
ME 120 course notes on PWM
http://learn.adafruit.com/adafruit-arduino-lesson-13-dcmotors/overview
ME 120: Speed control of small DC motors
2
Using a transistor as a high
speed switch
ME 120: Speed control of small DC motors
3
Transistor as a switching device
• Each Arduino output channel has a 40 mA limit
❖
❖
Only current to power a very small DC motor
Arduino is not designed as a power supply
• Maximum current draw for an Arduino is 200 mA
• Use the Arduino as the brain
• Let another switching element be the brawn
ME 120: Speed control of small DC motors
4
Use an NPN Transistor as a switch
2N4401 / MMBT4401
2N4401
MMBT4401
C
E
C
B
TO-92
SOT-23
E
B
Mark: 2X
NPN General Pupose Amplifier
This device is designed for use as a medium power amplifier and
switch requiring collector currents up to 500 mA.
Absolute Maximum Ratings*
Symbol
This device is designed for use
as a medium power amplifier
and switch requiring collector
currents up to 500 mA
TA = 25°C unless otherwise noted
Parameter
Value
Units
VCEO
Collector-Emitter Voltage
40
V
VCBO
Collector-Base Voltage
60
V
VEBO
Emitter-Base Voltage
6.0
V
IC
Collector Current - Continuous
600
mA
-55 to +150
°C
TJ, Tstg
Operating and Storage Junction Temperature Range
*These ratings are limiting values above which the serviceability of any semiconductor device may be impaired.
NOTES:
1) These ratings are based on a maximum junction temperature of 150 degrees C.
2) These are steady state limits. The factory should be consulted on applications involving pulsed or low duty cycle operations.
Thermal Characteristics
Symbol
PD
TA = 25°C unless otherwise noted
Characteristic
RθJC
Total Device Dissipation
Derate above 25°C
Thermal Resistance, Junction to Case
RθJA
Thermal Resistance, Junction to Ambient
Max
Units
2N4401
625
5.0
83.3
*MMBT4401
350
2.8
200
357
mW
mW/°C
°C/W
°C/W
*Device mounted on FR-4 PCB 1.6" X 1.6" X 0.06."
ME 120: Speed control of small DC motors
5
© 2001 Fairchild Semiconductor Corporation
2N4401/MMBT4401, Rev A
Use Digital I/O pin to switch LED on/off
Digital I/O pin → LED
Digital
output
ME 120: Speed control of small DC motors
Code to control brightness of an LED
int
LED_pin = 11;
// PWM pin LED or motor control
void setup() {
pinMode( LED_pin, OUTPUT );
}
void loop() {
int duty, pot_pin=0, reading;
reading = analogRead(pot_pin);
duty = map(reading,0,1023,0,255);
duty = constrain(duty,0,255);
analogWrite(LED_pin,duty);
//
//
//
//
read potentiometer
rescale to 8-bit
be safe
set duty cycle
}
In the following examples, the Arduino code does not
need to change when the electrical circuit is changed.
The Arduino code only needs to used a single digital
output pin, which in this code is LED_pin.
ME 120: Speed control of small DC motors
Use a Transistor to switch LED on/off
Digital I/O pin → Transistor → LED
5V
Digital
output
ME 120: Speed control of small DC motors
NPN Transistors as Switches
Transistors can be used as switches: By applying
relatively small voltage to the Base, electrical
current will flow from the collector to the base.
B
C
NPN
E
ME 120: Speed control of small DC motors
C is the collector.
B is the base
E is the emitter
NPN Transistors as Switches
When used as a switch, ICE, the current from
the collector to the emitter is large compare to
IBE, the current from the base to the emitter.
B
C
NPN
E
IBE
ICE
ME 120: Speed control of small DC motors
C is the collector.
B is the base
E is the emitter
What is a snubber diode, and
why should I care?
ME 120: Speed control of small DC motors
11
Simplest DC Motor Circuit
Connect the motor to a DC power supply
+5V
+5V
I
Switch closed
ME 120: Speed control of small DC motors
12
Current continues after the switch is opened
Opening the switch does not immediately stop current
from flowing in the motor windings
+5V
I
–
+
Inductive behavior of the
motor causes current to
continue to flow when the
switch is opened suddenly.
Charge builds up on what
was the negative terminal
of the motor.
ME 120: Speed control of small DC motors
13
Reverse current
Charge build-up can cause damage
+5V
I
Current surge through
– the voltage supply
+
ME 120: Speed control of small DC motors
Arc across
the switch
14
Motor Model
• Simple model of a DC motor:
❖
❖
❖
Windings have inductance and resistance
Electrical energy is stored in the windings – the inductance
effect
We need a way to safely dissipate electrical energy when
the switch is opened after the motor has been running
+5V
+5V
I
ME 120: Speed control of small DC motors
15
Flyback diode or snubber diode
Adding a diode in parallel with the motor provides a path
for the dissipation of stored energy when the switch is
opened
+5V
–
+
ME 120: Speed control of small DC motors
The flyback diode allows
charge to dissipate
without arcing across
the switch, or without
flowing back to ground
through the +5V voltage
supply.
16
DC motor speed control circuit
The circuit for DC motor speed control uses the idea from
the LED brightness control circuit. Replace the LED circuit
with the DC motor and snubber diode
+5V
motorPin
330Ω
ME 120: Speed control of small DC motors
17
Download