2

I'm trying to switch (just on/off) a 3.7V motor (coil resistance 2.2 ohm) and a 6V motor (coil resistance 8 ohm) with an Arduino Mini. I have trouble finding a universal way to do so.

What I know so far:

  1. there has to be a fly-back diode (D1 in the schematic diagram.)

  2. There are 4 possibilities for the switch.

    a) relay (simplest, Arduino Uno with 12V pump: transistor or optocoupler+12V relay?)

    b) NPN transtor https://electronicsclub.info/transistorcircuits.htm

    c) low gate voltage MOSFET How to drive low impedance load with arduino and transistor

    d) optocoupler (see the relay link)

  3. A low side switch is better than a high side switch. High side switch and Low side switch

  4. All grounds have to be connected together (unless using an optocoupler) Does signal ground have to be connected to actual ground?

I would like to keep the component count and price to a minimum. Relays are big and expensive so I hoped a transistor would do.

Questions:

  1. What components I can safely remove from the circuit?
  2. What is the most important thing to get right?

I understand I need R1 to prevent a floating pin What does pulldown resistor from Arduino's output pin to ground do? Is it necessary?

I'm trying different motors to see which one works best.

Edit 2019:

In the end (after reading replies) have built the following circuit:

Transistor switch schema

The moral is points 3 and 4 are extremely important.

Edit 2022:

A new answer has appeared and makes good points!

Richard
  • 23
  • 5
  • 2
    I'd say this schematic is an example of the most convoluted way to draw it. If drawing it the logical left-to-right way, the errors in the design would have been more obvious, Can you possible remove that abomination, and replace it with the schematic you ended up using, to prevent harm to the mind of innocent aspiring electronic tinkerers :;-) – Lenne May 07 '20 at 07:17
  • I think it the final schematic was something like [this schematic](https://easyeda.com/richard.meitern/simplearduinoswitch) – Richard May 18 '20 at 11:35

2 Answers2

1

No room for a comment. I am taking a SWAG as a lot of the needed information is missing.

This should eventually get you to a working solution.

I hope you have a big box of 1N4148s. With your current configuration and voltage you will be blowing them regularly. With an inductor what goes in comes out.

You are losing about about a volt through the transistor and it will get hot. Measure your terminal voltage of the 9V battery with the motor on.

After you take that measurement you will find it is not big enough to drive a motor.

R1 should go between GPIO pin 10 and ground especially if you use a MOSFET. In your current configuration it also acts as a voltage divider.

How are you powering the microcontroler? How are you getting the voltages you mention for the motors or am I assuming correctly they are driven from the 9V battery? I would recommend using an avalanche rated logic level N-channel MOSFET.

JRE
  • 67,678
  • 8
  • 104
  • 179
Gil
  • 4,951
  • 2
  • 12
  • 14
  • You are right, the transistor got hot and burned down occasionally. I think I powered the arduino from a different source as when the motor started the arduino lost power. I've abandoned the project few years back (and not done any other projects) so can't really be sure. – Richard Nov 06 '22 at 11:08
0

A circuit is needed for current to flow into Q5 base and return. The return path is missing.

To fix this Connect Q5 emitter to arduino GND.

R1 is not needed, but does no harm.

Blair Fonville
  • 3,837
  • 4
  • 19
  • 45
  • thank you for the suggestion. I tried connecting Q5 emitter to arduino GND and indeed it opened the transistor but the current flowing to the motor was not enough to start it. My uneducated guess is that most of the current from the motor power supply was flowing to arduino GND and hence not through the motor. If this is right I should have connected the arduino GND to power supply - – Richard Mar 27 '19 at 08:20