I want to connect a small motor (water pump) to an arduino, and I am not sure about the circuit.
The pump is small, works with 3.3V, but consumes 0.1A so I decided to use a transistor. The one I have is BF547, an NPN type small transistor. It supports currents up to 100 mA.
I measured the hfe (beta) of the transistor, and it is 370. The Vcc is 3.3V, and the current through the motor is 0.1 A, therefore:
A. the Ib equals to Ic/hfe = 0.1A/370 giving Ib = 0,00027A
B. with the Vb at 3.3V(pin voltage) and Vbe at 0.7 (datasheet) the Rb = (Vb-Vbe)/Ib = 9558 Ohm (10kOhm)
My questions are:
- Did I calculate the base resistance correctly?
- Do I need any additional resistor for the collector, next to the pump? Is it possible that more current flows through the collector-emitter?
- According to the datasheet of BF457 100mA is the max Ic it can take. Should I limit the pump by adding a small (10 Ohm) resistor to it (33 Ohm[motors resitance] + 10 Ohm for 3.3 V gives a current of 76 mA)
I am attaching the schematics (linear voltage regulator is there only to stabilise the Vcc provided by an old dc power source I found)
Thanks a lot for any suggestions!