I'm trying to drive a 6-28VDC siren from an Arduino Nano output pin. The latter provides 5V (max 50mA).

I've connected Arduino output to base of NPN through a 100k resistor, with emitter to ground and collector to the negative terminal of my sounder. Positive terminal of my sounder to 19.5V. (I'm using an old Dell charger to power the whole project, and a separate 5V regulator for the Arduino).

The NPN transistor is a BC548. I've checked the order of pins as follows: reading from left to right, with flat side of the transistor facing me: collector, base, emitter.

When I bring the Arduino output pin high, the siren sounds like a dead cat. The current through it is about 3mA. The siren does not pulsate.

When I connect the siren directly to the Dell charger, it pulsates very loudly, as it should.

What am I doing wrong here?

enter image description here

  • 2
    \$\begingroup\$ Maybe 3 mA through the siren is not enough? Check the data sheet. If you need more current, lower the base resistor. The gain of the BC548 might not be enough to amplify the base current, which is about 50 uA sufficiently. According to the datasheet, the KPE653A needs 4 mA minimum. \$\endgroup\$
    – Bart
    Feb 1, 2019 at 10:27
  • \$\begingroup\$ "The latter provides 5V (max 50mA)." Absolute Max is 40mA. Exceed that and you are likely to blow the pin, and perhaps the whole chip. \$\endgroup\$
    – CrossRoads
    Feb 1, 2019 at 15:34

2 Answers 2


You need to drive the transistor "hard" into saturation. Your 100k resistor limits the base current to \$ I = \frac {V}{R} = \frac {5}{100k} = 50 \ \mu\text A \$. With a gain of, say, 100 the collector current will be 5 mA and this isn't enough to drive the siren. You can confirm this by measuring the voltage between the collector and emitter.

Try reducing the resistor to 1k and report back.

  • \$\begingroup\$ Thank you @Transistor. That does it. (Will accept answer, but I can't for another 5 minutes) \$\endgroup\$
    – hazymat
    Feb 1, 2019 at 10:35
  • \$\begingroup\$ And, assuming a gain of 100 ensures that the transistor will not be in saturation. Did you mean 10 and 0.5 mA? \$\endgroup\$ Feb 1, 2019 at 15:54
  • \$\begingroup\$ @What: OP seems to be looking for 32 mA. A gain of 10 would be very low, would it not? Where have I erred? \$\endgroup\$
    – Transistor
    Feb 1, 2019 at 16:41
  • \$\begingroup\$ Yes, a gain of 10 would be very low, since it would require a base current of 3.2 mA. Unfortunately, BJTs do not exhibit high gain in saturation. The typical rule of thumb is to assume a gain of 10 for reliable operation in saturation. I've seen people work on the assumption of a gain of 20, but I've never taken the chance. \$\endgroup\$ Feb 1, 2019 at 16:45
  • \$\begingroup\$ Ah, OK. You are, of course, correct. \$\endgroup\$
    – Transistor
    Feb 1, 2019 at 17:17

hfe for the BC548 is 110-800, so the maximum current your transistor will allow to pass is

Ic = hfe * Ib = hfe * (5V / 100k) = 5-40mA

The datasheet for your sounder says it needs 23mA, so for the worst case hfe of ~110,

that gives 24k, so try a 10k resistor instead of your 100k


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.