How to power a 6-14v piezo from an Arduino?
The siren is rated for 150 mA at 12 Volts - which gives us an idea of what current it would need to operate, even if it did operate at 4.7 Volts.

The ATmega328 microcontroller used in the Arduino Nano and Duemilanove (or ATmega168 on older ones) has an absolute maximum rating of 40 mA per GPIO pin. While it may deliver higher current with a low enough load impedance, that would severely stress the microcontroller, driving it beyond any guarantee of sustained use or survival. I prefer to not load any GPIO pin beyond about 25 mA, but your risk appetite may differ.

By wiring the siren directly to the Arduino output pins, you are provoking the imminent destruction of its microcontroller, i.e. magic blue smoke, Arduino kaput. That it may have "worked" on some Arduino board is irrelevant to this point.

Here are two options for getting that siren to work with an Arduino. The first option uses the 5 Volt output from the Arduino, so whether it works is all up to chance. The second schematic uses an external voltage source (6xAA alkaline cells = 7.5 Volts) and will work consistently even after the batteries deplete a fair amount.







simulate this circuit &ndash; Schematic created using CircuitLab

An inexpensive 2n7000 MOSFET (if you need through-hole) or IRLML2502 (if SMD is acceptable) will serve fine as the switching component.