Example 05: Piezo Buzzer (Sound)

Example Video

Hardware Required

TI LaunchPad

Breadboard BoosterPack

Breadboard

Buzzer

2x Jumper Wires

Relevant Groundwork

In this example we will be using the tone() function to create sounds with the buzzer. The buzzer we have is a piezoelectric element which means it can change it’s tone using a combination of electrical and mechanical principles. The buzzer clicks at different frequencies and if we use our LaunchPad digital pin to click fast enough, we can generate sound from the buzzer. The tone() API will help us do all the work, we just need to tell it what pin the buzzer is on and what pitch to play for how long. We can use noTone() to stop the sound.

tone() is one of the many Energia APIs that are available for your use. These are special functions built into Energia that have special purposes. While Energia code uses standard C programming code, the Energia APIs (Application Programming Interfaces) only exist in Energia. We’ve been using a lot of the APIs already, such as pinMode(), digitalWrite(), digitalRead(), analogWrite(), analogRead(). You can see the whole list of APIs in the reference section of the Energia website at www.energia.nu/reference. The Energia APIs are based on Wiring, which is also the basis of many popular programming environments like Arduino. This makes it easy to understand and also easy to jump over between different hardware. This concept is called software abstraction. Energia helps us hide some of the details and boring stuff, so we can have an easier and more fun time programming.

This example is pretty simple to set up, which will give you more time to create your own melodies! To make your own, you can change the values in the melody and note duration arrays. Search the internet to find other melodies or experiment and make your own. If you know which notes you need and how long to play each one, you can quickly make up a melody that can play on the buzzer.

Programming Challenge

Can you play a different melody? Try to translate notes of a melody into the tones and store them in an array.

Troubleshooting

Code not uploading?

Check for errors in Energia debug window. The compiler will tell you what is happening. Errors are in red text.

Sometimes your LaunchPad gets stuck or hung up on the previous code. Unplug your LaunchPad and plug it back in to perform a full reset. This is called a power on reset. Sometimes using the RESET button can work but taking away the power and letting the microcontroller fully reset is often best.

If you have a failure to upload it could be your drivers are not properly installed. Energia will sometimes give the error “No unused FET Found” which means it can’t find a LaunchPad connected to your computer. Make sure you download the drivers for your operating system found on the Getting Started Guide.

If you had no problem with the previous Blink example, your Energia should be correctly set up. Restart your LaunchPad and restart Energia IDE if you encounter any problems. Make sure to select the right serial port and board type under the Tools menu.

Code not working?

Try hitting the reset button. Sometimes the LaunchPad needs to get reset after the program is uploaded.

Buzzer not buzzing?

Make sure you properly uploaded the code and that you properly named your variables for the buzzer pin.

Make sure your pins are properly connected, if they are not the buzzer will not make sounds properly. The GND pin (shorter leg) of the buzzer should be connected to the GND pin of the LaunchPad. The (+) pin should be connected to a digital pin on the LaunchPad.

For additional support, try searching the Energia forums on 43oh.com. We believe in you to figure out any problems, now believe in yourself and find the solution!

Energia sketches are C/C++ based and compiled with the open-source compiler MSPGCC. The Energia language comes from Wiring. The Energia environment is based on Processing and includes modifications made by Wiring.