Running a tiny pump from a Arduino Due

Hi! Thanks for reading this post, I hope you can help me out with this one.

First of all, I'm pretty sure this is asked like 1 million times but I just can't find a topic because I have no clue what search terms I have to use.

I have a really small 3V waterpump (removed from a 'MagicTap'.) If I put it on the Arduino's 3V output it runs fine. But if I put it on output pin one it does not work. I'm totally stupid with electronics and I know this is kind of a dumb question.

So what I want is to control the small pump from the Arduino without using a relay. I do have some basic small parts laying around.

Can some one explain how to make this work? Thanks.

Firstly you will have overloaded the Arduino 3.3V output by doing this - its only
rated for 50mA, much less than a motor takes - you will have totally overloaded
the Arduino output pin which is limited to more like 20 or 30mA and has significant
built-in resistance (its not for power, its a signal).

You need a switching device capable of handling the current drawn by the pump.

Do you know what current it takes? Once you know that you can pick a MOSFET
or transistor for the task. Do you have a 3V supply separate from the Arduino's
3.3V?

MarkT:
Do you know what current it takes? Once you know that you can pick a MOSFET
or transistor for the task. Do you have a 3V supply separate from the Arduino's
3.3V?

Thanks for your fast and detailed reply. The pump takes 150mA. Indeed way too much than the Arduino can handle. Could you explain to me what kind of MOSFEt or transistor I need to complete this task?

One that can switch from 3.3V. For that current level the simplest way is probably
an NPN switching transistor like 2N2222 or better, 220 ohm base resistor.