

The pitches library is not found in the Arduino IDE but you can download the ZIP file from Github and include the library in the Arduino IDE by clicking in the menu line: Sketch -> Include Library -> Add.

#Safe current for arduino piezo code
If you take a look into the source code of the library you see that the library is nothing else than a lookup table for different notes to their frequency. You could now use the tone function and define the connected output pin, the frequency and the duration of the output generation, but if you do not know the frequency of different notes, we can also use the pitches library from Mike Putnam. Instead we use the Arduino tone function to generate a square wave of the specified frequency (and 50% duty cycle).

Therefore we can not use the analog write function, because this function has a fixed frequency of 500Hz. To create a melody the passive buzzer needs an AC signal where we can define the frequency. Let me know in the comment section if you know the melody that we create in this example. The passive buzzer has the advantage that we can not only create a tone, but also a melody with different frequencies. The digital I/O pin of the Arduino, EPS8266 or ESP32 microcontroller is therefore connected to the gate of the MOSFET with a resistor of 220Ω in series, because the Arduino operation voltage of 5V or even the 3.3V operation voltage of the ESP8266 or ESP32 would damage the transistor. Otherwise we were not able to switch off a load that has a higher voltage than the control voltage.
