P4 如何使用树莓派控制蜂鸣器Buzzer
Introduction
此章节我们将学习如何使用树莓派+PNP晶体管来驱动一个有源蜂鸣器,使其发声。
What you will need
树莓派×1
线路板×1
网线×1
蜂鸣器×1
NPN 三级管 (8050)×1
电阻(1KΩ)×1
跳线
What you will do
作为一种带有集成结构的电子蜂鸣器,它采用直流电源,被广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话、语音设备定时器及其它电子产品。蜂鸣器可分为压电蜂鸣器和电磁蜂鸣器。压电蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器、谐振腔、壳、等组成。电磁式蜂鸣器则主要由振荡器、电磁线圈、磁铁、振动膜片、壳体等组成。蜂鸣器又可以分为有源和无源(见下面的图片)。当我们将两个蜂鸣器的引脚朝上放置时,我们能看到绿色电路板的就是无源蜂鸣器,而另外一个没有看到电路板的就是有源蜂鸣器了。
有源蜂鸣器和无源蜂鸣器的区别在于:
有源蜂鸣器有内置振荡源,所以只要它带电就可以发出声音。而无源蜂鸣器没有振荡源,在使用直流信号时,它不会鸣叫,所以你想要驱动它的话,只能利用频率在2K-5K的方波信号。由于存在多个内置振荡电路,有源蜂鸣器通常会比无源蜂鸣器价格更昂贵。
第一步:如下图所示连接电路
第二步:使用nano编辑和保存代码
Python code
#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
BeepPin = 11 # pin11
def setup():
GPIO.setmode(GPIO.BOARD) # Numbers GPIOs by physical location
GPIO.setup(BeepPin, GPIO.OUT) # Set BeepPin's mode is output
GPIO.output(BeepPin, GPIO.HIGH) # Set BeepPin high(+3.3V) to off beep
def loop():
while True:
GPIO.output(BeepPin, GPIO.LOW)
time.sleep(0.1)
GPIO.output(BeepPin, GPIO.HIGH)
time.sleep(0.1)
def destroy():
GPIO.output(BeepPin, GPIO.HIGH) # beep off
GPIO.cleanup() # Release resource
if __name__ == '__main__': # Program start from here
print 'Press Ctrl+C to end the program...'
setup()
try:
loop()
except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the child program destroy() will be executed.
destroy()
领取专属 10元无门槛券
私享最新 技术干货