Home / Tutorials / Arduino Tutorial / How to Use a Microphone with Arduino
arduino microphone

How to Use a Microphone with Arduino

How can an Arduino capture sound? Just like how your computer captures sound: through a microphone. In this Arduino microphone tutorial, we’ll look at how a sound sensor works. Also, we’ll build a simple clap switch project as an example on how to use a microphone with Arduino.

The Electret Microphone

Most “sound sensor” boards available feature a specific kind of microphone: the electret microphone. The Grove Sound Sensor features this microphone:

The electret microphone is a type of condenser microphone. Condensers are essentially capacitors and condenser microphones are formed by a thin diaphragm mounted in front of a plate. Recall that a capacitor is formed by two conductors with an insulator, or dielectric, between them. Both the diaphragm and the plate are conductors. The smaller the distance between these two conductors, the higher the capacitance, given that the surface area of the conductors are unchanged.

When sound reaches the condenser, the diaphragm vibrates thereby changing the distance between the conductors and effectively changes the capacitance between the diaphragm and the plate. This capacitance is converted to voltage with the application of a sufficient charge on the condenser. The voltage is boosted through a built-in transistor inside the microphone as shown in the picture above.

Now condenser microphones needs high voltages to maintain that charge. An electret microphone doesn’t need high voltages because the diaphragm is made out of a special material that stores a high enough charge. This material, which is the electret, is like a permanent magnet but stores a permanent charge.

The voltage changes that are produced by sound should be enough to be detected by an Arduino. This is why sound sensors often always have an operational amplifier IC included. For my Grove Sound Sensor board, the LM358 is the op-amp.

Using an Arduino Microphone

Since the sound sensor board produces a changing voltage, we’ll need the Arduino’s analog-to-digital converter to process that voltage. Here’s a sketch that reads the voltage from the sound sensor connected to A0 which is then displayed on the Arduino IDE’s serial plotter.

The sound sensor board outputs a noisy voltage so we need to take the average of a hundred samples to be more definitive. Then again, it is still noisy as shown by the serial plotter:

This is expected as sound can never be a straight line graph. What we can only deduce from this data is the peak value when there is a loud sound.

For example, the values hover around 300 to 500+ based on the graph above. But when I clap, this shows:

Making a Clap Switch

I can now use this data to create a simple clap switch. Here’s the modified sketch:

I added a LED that will turn on everytime the sound sensor picks up a loud enough sound, like clapping. Otherwise, it stays off.

Of course, you can create a much more complicated project using an Arduino microphone. Keep in mind though that you won’t be able to create speech recognition projects with this setup. That is, unless you use a computer or add another component for voice processing.

Check Also

Using an Arduino Turbidity Sensor

Turbidity refers to the haziness of a fluid caused by the increased number of very …

Leave a Reply

Your email address will not be published. Required fields are marked *