有源蜂鸣器:自带高频振荡,直接上电并加信号即可蜂鸣,一般引线有3根
无源蜂鸣器:不带高频振荡,需要外加震荡才能工作,一般引线有两根。
如果你想给树莓派加上个蜂鸣器但是又不想购买,从贺卡或闹钟拆下的蜂鸣器一般就是无源蜂鸣器。我们可以利用树莓派的GPIO驱动它发出蜂鸣声。
蜂鸣器:
以下是树莓派GPIO的参考图
首先把无源蜂鸣器负极接地,正极接一个输出GPIO,这里我选择的是GPIO17(11管脚)和GND(20管脚)
接着打开Python3,(必须实现装好RPi.GPIO的库,详情百度)
接着初始化GPIO:
import RPi.GPIO as GPIO
import os
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)
定义一个蜂鸣函数:
def beep(frq):
GPIO.output(17, GPIO.HIGH)
time.sleep(1 / frq)
GPIO.output(17, GPIO.LOW)
time.sleep(1 / frq)
frq为频率。注意这里频率不是特别稳定,一般会偏低,受CPU运行速度、负载和函数执行效率等等有关。
接着输入:
while True:
beep(6000)
如果你的蜂鸣器发出了声音,说明ojbk了。6000是我测得蜂鸣器发出人耳感觉最刺耳的频率,你也可以根据你的感觉调整。
下面是一个摩斯电码的例子:
def short():
for i in range(50):
beep(6000)
def long():
for i in range(100):
beep(6000)
def speak(string):
for i in string:
if i == '.':
short()
elif i == '-':
long()
time.sleep(0.05)
stri = '''
..-./..-/-.-./-.-/-....-
'''
speak(stri)
你可以根据自己的想法来进行编程,比如整点报时、闹钟、天气提醒等等