======Oak: Making Noise with the Buzzer====== This lesson will show you how to connect the 3.3v Active Buzzer to your Oak and make it beep morse code. =====Components Used:===== ^ Part ^ Quantity ^Identification^ | Oak with soldered headers |1| | | Breadboard| 1| | | 3.3v Active Buzzer | 1| | | M to M 30cm Jumper Wire| 2| Red, Black| =====Concepts:===== **Piezo Buzzers**: In this lesson we will be using a Piezo buzzer to make sound. We will be achieving this by turning it on and off, much like an [[oak:tutorials:leds|LED]]. {{:oak:tutorials:buzzerexample.jpg?direct&300|A piezo buzzer}} A piezo buzzer is a sandwich of two different conductive metals. When voltage is applied to the two different metals it bends, creating waves in air - which we call sound. They are usually small and circular and can be found in anything that provides an annoying beep. We can make a piezo buzzer beep like this in code: // turn pin 1 "on" by making the voltage HIGH) digitalWrite(1, HIGH); Where digitalWrite(1, HIGH); means turn Pin1 fully on. Don't forget to turn it off again! =====Circuit:===== {{:oak:tutorials:buzzer.png?direct&200|Buzzer}} Remember that when connecting a buzzer, you must pay attention to the (+) sign on the top of the buzzer casing. The (+) sign represents the positive connector and is where the red wire from pin 2 must go. If you get this backwards your buzzer may stop working. =====Code:===== //set the buzzer pin int buzzer = 2; // the setup function runs once when you reset or power the board void setup() { // initialize buzzer as an output. pinMode(buzzer, OUTPUT); } // the loop function runs over and over again forever void loop() { // make 3 dots to make an S for (int a = 0; a < 3; a++) { dot(); } // wait 100 miliseconds after the first S delay(100); // make 3 dashes to make an o for (int b = 0; b < 3; b++) { dash(); } // wait 100 miliseconds after the o delay(100); // make 3 dots to make an S for (int c = 0; c < 3; c++) { dot(); } //wait 5 seconds before playing again delay(5000); } // make a dot noise void dot() { //turn on the buzzer digitalWrite(buzzer, HIGH); delay(100); // turn off the buzzer digitalWrite(buzzer, LOW); delay(100); } // make a dash noise void dash() { // turn on the buzzer digitalWrite(buzzer, HIGH); delay(300); // turn off the buzzer digitalWrite(buzzer, LOW); delay(100); } In this example, we create two separate functions //dot()// and //dash()// and use them in for loops to save us having to write the same code over and over again. We also use a variable //buzzer// to declare which pin we are using for the buzzer. //dot()// and //dash()// turn on and off the buzzer with different timings to simulate a morse code dot and dash using the //delay()// function which tells the Oak to pause for that many milliseconds. =====Conclusion:===== With this newfound power, perhaps you could make an internet connected morse code system to read out important tweets or secret messages from your friends.