Uno vs Nano and vibration motor issues?

Hello all. I am trying to understand the differences between a circuit I have successfully running on a uno and when I load it up on a nano it wont spin the motor just twitches it. the program is a simple motor vibrating one (delay on, delay off, repeat) and the circuit is like pictured.... Is the voltage too low on the base to trigger the transistor/switch? Any help would be greatly appreciated.

Thanks

there is no fundamental difference in boards.in regard to this project.
[ wrong... see post #3 for a fundamental difference ]

did you change what board you are taking to in the IDE ?
verify serial port, ? verify you are on the correct pin ?

if you know how to post your code in code tags, then please do so.
if you are not sure, at the top of every forum is a sticky that say how to use this forum
skip to #7 and it will be clear

I have 2 versions of the identical circuit one soldered up for the nano the other on a bread board. I have run both versions with the uno with working results. But both circuits just twitch the motor on the nano...? I even tried using a different supply voltage source of a 3.5v power supply so it was the only thing seeing the motor load. Same result vibration motor just twitches.

see my plain code:

//Code to vibrate motor
const int motorPin = 3;

void setup()
{
pinMode(motorPin, OUTPUT);
}

void loop()
{
digitalWrite(motorPin, HIGH);
delay(200);
digitalWrite(motorPin, LOW);
delay(800);
digitalWrite(motorPin, HIGH);
delay(200);
digitalWrite(motorPin, LOW);
delay(800);
digitalWrite(motorPin, HIGH);
delay(200);
digitalWrite(motorPin, LOW);
delay(2000);
}

dave-in-nj:
there is no fundamental difference in boards.in regard to this project.

Yes, there is.
OP is powering the motor from the 3.3volt pin.

The Uno has a separate 3.3volt regulator that can supply ~150mA.
The Nano's 3.3volt comes from the USB chip with <=50mA current capability.

Try running the motor from the 5volt rail.
Use two diodes in series to drop that to 3.6volt.
The 2N2222 drops another ~0.6volt, so ~3volt for your motor.
Leo..

Wawa:
Yes, there is.
OP is powering the motor from the 3.3volt pin.

The Uno has a separate 3.3volt regulator that can supply ~150mA.
The Nano's 3.3volt comes from the USB chip with <=50mA current capability.

Try running the motor from the 5volt rail.
Use two diodes in series to drop that to 3.6volt.
The 2N2222 drops another ~0.6volt, so ~3volt for your motor.
Leo..

I modified my post to show your correction.

Current capability of the 3.3volt pin (and 5volt pin) is often misunderstood.
It is different for every type of Arduino.
The error in the specs table of the Uno datasheet (DC Current for 3.3V Pin | 50 mA) does not help either.
High time that someone with electronics knowledge corrected the (many) long-standing errors on this website.
Leo..

Wawa:
Current capability of the 3.3volt pin (and 5volt pin) is often misunderstood.
It is different for every type of Arduino.
The error in the specs table of the Uno datasheet (DC Current for 3.3V Pin | 50 mA) does not help either.
High time that someone with electronics knowledge corrected the (many) long-standing errors on this website.
Leo..

I would also welcome some fundamental corrections to the errors on the site about a hundred times more important than changing the Forum to some new format

I appreciate your guys' help on this. I was aware of the lower current carrying capacity of the 3.3v rail on the nano. This is why I am testing running the motor off different power source all together. I checked control voltage from the boards and the uno runs at a solid 5V but the nano is only running at 4.7 control voltage. Is this difference enough to make the nano not cycle/switch the transistor that is made to run at a 6v base voltage? I have racked my brain on this issue and this is the only explanation I can come up with. I tried running the motor straight off the 5v rail on the nano and it still just wont spool up (only reading 0.4 V supplied to it).? I might try feeding the base leg of the transistor a test voltage signal and see if it will turn on the motor.? thanks for your brains on this.

Is the vibra ERM or LRA?

Ropre:
I checked control voltage from the boards and the uno runs at a solid 5V but the nano is only running at 4.7 control voltage.

Is this differance enough to make the nano not cylce/switch the transistor that is made to run atg a 6v base voltage? I have racked my brain on this issue and this is the only explanation I can come up with.

  1. Normal if running on USB power.
    The Uno has a (low 'on' resistance) backflow protection mosfet switch between USB power and 5volt rail.
    The Nano has a schottky diode, with ~0.3volt drop (~4.7volt left).

  2. A 5volt or 4.7volt supply shouldn't make any difference here.
    Base current is ~4.3mA or ~4mA with a 1k base resistor. Both base currents are ok for upto ~75mA collector/motor current.
    Leo..

ERM..

I powered the motor off of the 5v rail and still had the twitch issue. So I ran the base signal wire with a 10 ohm resistor instead of 1k and now it spins the motor as required.

I did test going back to the 3.3 v rail and there is too much current for the little nano to run (it shuts down briefly when motor spins up). So it seams a combo of problems; still not sure why the uno would trigger the transistor but the nano wouldn't.

Ropre:
So I ran the base signal wire with a 10 ohm resistor instead of 1k and now it spins the motor as required.

Wow.
86mA pin to base current, assuming an internal 40ohm output pin resistance.
<=20mA is recommended. 40mA is absolute max.

Better change that resistor to ~220ohm (150ohm minimum) before you fry the output pin.
Leo..

Leo,

I agree with what you are saying 100%; but it won't run with that on the nano? Why?

Hi,
Can you post a picture of your project so we can see your component layout?

Check that the 2N2222 is the full part number too.

If you take the end of the base resistor that goes to the arduino output out of its socket and connect it to the 3.3V pin, what happens to the motor?

Thanks Tom.... :slight_smile: