Difference between revisions of "BakeBit - Buzzer"

From FriendlyELEC WiKi
Jump to: navigation, search
(Source Code)
(Observation)
 
(One intermediate revision by the same user not shown)
Line 107: Line 107:
 
=== Observation ===
 
=== Observation ===
  
When users press the button the buzzer will beep. When the button is released the buzzer will be silent.
+
When the button is clicked the buzzer will beep and if it is clicked again the buzzer will be silent.
  
 
==Resources==
 
==Resources==

Latest revision as of 07:45, 17 April 2017

查看中文

1 Introduction

Buzzer
  • The BakeBit-Buzzer is a passive buzzer. To drive this buzzer an oscillating source generating 2.7K square waves is needed.
  • PWM input signals with different frequencies generate different sounds.
  • It can be used in electronic devices that need sound generators.

2 Hardware Spec

  • Standard 2.0mm pitch 4 Pin BakeBit interface
  • PWM input
  • PCB dimension(mm): 20 x 24

Buzzer PCB

  • Pin Description:
Pin Description
GND Supply Voltage 5V
5V Gound
NC Not Connected
SIG PWM Input

3 Code Sample: Button And Buzzer

A BakeBit - Button module is needed in this test case.

3.1 Hardware Setup

Connect the buzzer module to the NanoHat Hub's D3 and the button module to the NanoHat Hub's D4:

Button And Buzzer-1.jpg Button And Buzzer-2.jpg

3.2 Source Code

import time
from bakebit import *
import math
 
buzzer_pin = 3		#Port for buzzer
button = 4		#Port for Button
old_button_status = -1
pinMode(buzzer_pin,"OUTPUT")	# Assign mode for buzzer as output
pinMode(button,"INPUT")		# Assign mode for Button as input
 
buzzer_on = False
old_buzzer_on = not buzzer_on
button_pressed = False
 
while True:
	try:
		while True:
			button_status = digitalRead(button)	#Read the Button status
			# print button_status
			if old_button_status < 0: 
				break
 
			if button_status != old_button_status:
				break
 
		time.sleep(0.2)
		old_button_status = button_status
 
		if button_status == 0:
			button_pressed = True
		else:
			if button_pressed:
				buzzer_on = not buzzer_on
			button_pressed = False 
 
		if old_buzzer_on != buzzer_on:
			old_buzzer_on = buzzer_on
			if buzzer_on:
				analogWrite(buzzer_pin,127)
				print "Buzzing"
			else:
				analogWrite(buzzer_pin,0)
				print "\tOff"			
 
		time.sleep(0.2)			
	except KeyboardInterrupt:	# Stop the buzzer before stopping
		digitalWrite(buzzer_pin,0)
		break
	except (IOError,TypeError) as e:
		print("Error")

Github

3.3 Run Code Sample

Before you run the code sample you need to follow the steps in bakebit tutorial to install the BakeBit package.
Enter the "BakeBit/Software/Python" directory and run the "bakebit_prj_Button_And_Buzzer.py" program:

cd ~/BakeBit/Software/Python
sudo python bakebit_prj_Button_And_Buzzer.py

3.4 Observation

When the button is clicked the buzzer will beep and if it is clicked again the buzzer will be silent.

4 Resources

5 Update Log

5.1 December-11-2016

  • Released English version

5.2 Jan-19-2017

  • Renamed "NEO-Hub" to "NanoHat-Hub"

5.3 Jan-20-2017

  • Renamed "NanoHat-Hub" to "NanoHat Hub"