树莓派蜂鸣器python代码_树莓派+蜂鸣器=整点报时器

试了下用树莓派外加一个有源蜂鸣器,实现了一个简单的报时功能。

对于有源、无源蜂鸣器的区别,简短介绍下:

一、无源蜂鸣器:

1.无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它。

2.声音频率可控,可以做出“多来米发索拉西”的效果。

3.在一些特例中,可以和LED复用一个控制口。

二、有源蜂鸣器:

1.有源蜂鸣器内部带震荡源,所以只要一通电就会叫。

2.程序控制方便,单片机一个高低电平就可以让其发出声音,而无源蜂鸣器却做不到。

我采用的是有源蜂鸣器:

电压:3.5—5.5V

电流:<25mA

频率:2300±500

为了使蜂鸣器鸣叫的程序模块化,将这一部分代码放到独立的 libbeep.py 文件中。

import RPi.GPIO as GPIO

import time

PIN_NO = 10 #GPIO编号,可自定义

GPIO.setmode(GPIO.BOARD)

GPIO.setup(PIN_NO, GPIO.OUT)

#哔1次,时长作为参数传递

def beep(seconds):

GPIO.output(PIN_NO, GPIO.HIGH)

time.sleep(seconds)

GPIO.output(PIN_NO, GPIO.LOW)

#哔N次,时长、间隔时长、重复次数作为参数传递

def beepAction(secs, sleepsecs, times):

for i in range(times):

beep(secs)

time.sleep(sleepsecs)

#beepAction(0.02,0.02,30)

然后在 alarm.py 中实现整点报时,代码如下:

import RPi.GPIO as GPIO

import time

import libbeep

while True:

t = time.localtime()

h = t.tm_hour

m = t.tm_min

s = t.tm_sec

w = time.strftime('%w',t)

print h,m,s,w

time.sleep(0.3)

if m == 0 and s == 0:

if h>22 or h<8:#为了晚上22点之后,上午8点之前不被打扰,设定了条件

print "continued"

continue

if h>12:

h = h-12

libbeep.beepAction (0.3,0.5,h)

time.sleep(1)

if m == 30 and s == 0:

if h>22 or h<8:

print "continued"

continue

libbeep.beepAction (0.05,0.05,2)

time.sleep(1)

最后运行脚本:

sudo python alarm.py

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值