Read a Push Button, Control a Buzzer
Overview
In this tutorial you will learn how to create a simple buzzer alarm circuit, access Cloud9 (the BeagleBone's coding interface), load and run a script. In this project, we add frequency control to make sound. The code introduces analog Pulse-width Modulation (PWM) function to control the sound and volume of a simple buzzer.Note: This tutorial uses a BeagleBone set up specifically for our BeagleBone Black Tinkerer Workshop. The BeagleBone Black you will use in the Tinkerer Workshop will be set up with a Display and a Keyboard with a trackball mouse, and the JavaScript Files will be saved to the board. The BeagleBone will be running Angstrom, which come pre-loaded when you get the board. If you are not in a Tinkerer Workshop and want to do these projects, you can find a guide on how to attach a keyboard with a trackball mouse and a display here. You will also need to add the JavaScript files, which can be found here, to the following directory on the BeagleBone Black: /var/lib/cloud9/workshop
Parts List
- 1x BeagleBone Black Board
- 1x Medium Breadboard
- 1x Jumper Wire Pack for Breadboards
- 1x Push-button switch (Available in the Prototyping Parts Kit)
- 1x Electromagnetic buzzer (12mm "beeping" type, 30mA @ 5VDC, 2.3KHz +- 300hz )
- 1x Transistor, N-Channel Mosfet 2N7000 (Available in the Prototyping Parts Kit)
- 1x 330 Ohm Resistor (Also available in the Prototyping Parts Kit)
- 1x 1000 Ohms Resistor (can use 3 x 330 in series from Prototyping Parts Kit)
Wiring Diagram
Step 1
Wire the components as shown. Note the orientation of the Transistor (3-leads) E-B-CNote: The face of the transistor is flat.
Step 2
Plug the DC power jack into the BeagleBone Black to power the device.Step 3
Once the system is ready, click on BEAGLEBONE-workshop icon to open the Chromium browser and then start the Cloud9 IDE BeagleBone.local:3000 (192.168.7.2:3000)Step 4
In the Cloud9 workshop folder click on the file Project4.js to open the BoneScript program that will control the LED and make it blink.The code should look like this:
var b = require('bonescript'); var buzzerPin = "P8_13"; var switchPin = "P8_26"; var state = 0; var switchState = 0; var volume = 0.2; // configure pins b.pinMode(buzzerPin, b.OUTPUT); b.pinMode(switchPin, b.INPUT); setInterval (inputHandler, 100); setInterval (toggle, 500); function inputHandler() { // detect switch push b.digitalRead(switchPin, activate); function activate(x){ if (x.value == '0') switchState = !switchState; } } function toggle() { // switch buzzer on/off state =!state; if(state == 1) b.analogWrite(buzzerPin, b.LOW); else if (switchState == 1) b.analogWrite(buzzerPin, volume); }
Step 5
Now press Run at the top of the Cloud9 interface. If this says "Debug", select "Run" from the drop down under this button.The script should now run, and when you push the button on the circuit, the buzzer should sound.