查看: 2633|回复: 0

[原创] 【一网打尽】树莓派用蜂鸣器实现整点报时

[复制链接]
  • TA的每日心情

    2015-8-29 20:27
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2015-3-15 19:25:11 | 显示全部楼层 |阅读模式
    分享到:

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

    可能有些新手对于有源、无源蜂鸣器的区别,这里简短介绍下:
    一、无源蜂鸣器
    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
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-20 13:37 , Processed in 0.096967 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.