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