Switching on/off DFPlayer mini with a transistor


I would like to save battery life by turning on the DFPlayer using an arduino output pin only when needed...

The problem very similar to the one discussed here: Pin 0V when i use a transistor - Project Guidance - Arduino Forum


  • arduino pro (3.3v)
  • DFPlayer mini: 5V, draws ~25mA when idle, and ~100mA when playing
  • Arduino and DFPlayer powered by breadboard connected to 5V

I've tried both NPN (P2N222A) and PNP (2N3906) transistors, with limited success. The mp3 player gets power but just plays stuttering/grinding noises - a low power scenario. I see the same symptom when the player is connected to 3.3v (as opposed to 5).

The PNP setup looks like this;

(For me, the emitter is hooked up directly to the 5V on the breadboard)


  • Is it even possible to use a 3.3v pin on the arduino to switch on a 5V device with a transistor?
  • Is there an easier/better way to attempt this besides a transistor switch?


Have you tried decreasing R1? With the 3mA base current you get with a 1kΩ resistor you have the transistor in saturation for about 30mA. For 100mA load you should have at least 7mA base current to have the transistor saturated. So try a 180Ω resistor on the base.

I don't have a 180Ω handy, but I tried it with 220Ω and also 100Ω and then 100Ω+47Ω... I got the best results with 220 - it plays the music for a seconds and then goes back to the buzzing/grinding. The lower resistors get to the buzzing sooner. However, it appears the 1k never lets the music play at all, so this seems like progress.

I honestly have no idea what's going on (pretty new to electronics)! Any help is greatly appreciated.

Does it have to be a transistor? A MOSFET would be much easier as it's switched by voltage and not current.

Also look here for the same discussion and solutions: