DC motor: ON-OFF control

I bought a kit with Arduino Uno to do some tests. One of projects suggested say to control a DC motor 3 Vdc/300 mA with these features:

• Voltage: operating 1,5 - 3 Vdc; nominal: 3 Vdc
• Without load: 14200 rpm; 0,3 A
• With load: 11780 rpm; 1,33 A; torque: 19,6 gcm; 2,37 W; efficiency: 59,5%
• Stall torque: 115 gcm

It is suggested to use a transistor BC 547 (see attachment), using the 3.3 V Arduino source (if i don’t wrong, it can source at most 50 mA: http://arduino.cc/en/Main/ArduinoBoardUno). The circuit proposed don’t plan any base resistor or fly-back diode.
Some questions:

  • what does it mean with the indication “3 Vdc/300 mA” for the DC motor? In what conditios does it sink 300 mA?
  • I think the BC 547 isn’t sufficient to control the motor (Icmax = 100 mA). Is it correct? And what about the start current?
  • Isn’t advisable a base resistor to limit the current?

I beg your pardon for my English… I hope you’ll undestand!
Thanks for replies!

BC547.pdf (47 KB)

I believe you are correct in all cases.

  1. The Arduino on-board 3.3V source is not capable of supplying the needed current.
  2. The BC547 cannot control 1.33A which the motor needs under load.
  3. A diode needs to go across the motor.
  4. A base resistor should be used.

I would suggest the motor be given its own 3V source, and that a stronger N-Channel MOSFET be used to limit voltage loss across the transistor and heat issues as the current flows. A small resistor between arduino pin and MOSFET gate should be used to avoid damage from charging the gate capacitance. And a diode added across the motor, anode to the 3V terminal and cathode to the terminal connected to the MOSFET.

A part such as this would work well N-channel Mosfet Logic Level Low Rds Low gate capacitance thru-hole


Thank you very much, is like I imagined…
Could 2SK1058 (see attachment) be adapt? (I don’t know if this sentence is correct… :blush:)

2SK1058.pdf (40.1 KB)

No that FET needs 10V to drive the gate so it is not sutiable to be driven directly from an arduino. You need a logic level FET or you need a transistor to drive your FET.