P4 如何使用树莓派控制蜂鸣器Buzzer

buzzer

Introduction

此章节我们将学习如何使用树莓派+晶体管来驱动一个有源蜂鸣器,使其发声。

What you will need

  • 树莓派×1
  • 线路板×1
  • 网线×1
  • 蜂鸣器×1
  • NPN 三级管 (8050)×1
  • 电阻(1KΩ)×1
  • 跳线

What you will do

作为一种带有集成结构的电子蜂鸣器,它采用直流电源,被广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话、语音设备定时器及其它电子产品。蜂鸣器可分为压电蜂鸣器和电磁蜂鸣器。压电蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器、谐振腔、壳、等组成。电磁式蜂鸣器则主要由振荡器、电磁线圈、磁铁、振动膜片、壳体等组成。蜂鸣器又可以分为有源和无源(见下面的图片)。当我们将两个蜂鸣器的引脚朝上放置时,我们能看到绿色电路板的就是无源蜂鸣器,而另外一个没有看到电路板的就是有源蜂鸣器了。
有源蜂鸣器和无源蜂鸣器的区别在于:
有源蜂鸣器有内置振荡源,所以只要它带电就可以发出声音。而无源蜂鸣器没有振荡源,在使用直流信号时,它不会鸣叫,所以你想要驱动它的话,只能利用频率在2K-5K的方波信号。由于存在多个内置振荡电路,有源蜂鸣器通常会比无源蜂鸣器价格更昂贵。

image (7).png

第一步:如下图所示连接电路

image (8).png

第二步:使用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()

发表评论