树莓派 SAKS 扩展板上手把玩 之 红色警报器

本文所介绍的内容基于树莓派瑞士军刀扩展板(SAKS),由于 SAKS 基于树莓派通用的 GPIO 设计,文中的原理和代码也适用于其他情况。

本文由树莓派实验室创作,遵循CC协议(署名-非商业性使用-禁止演绎-相同方式共享),欢迎树莓派爱好者们遵循协议内容转载传播。谢绝不遵守协议的转载和抄袭。

本节将通过 DIY 一个简单的警报器,来介绍 SAKS 扩展板上蜂鸣器的使用。设定一个时间,比如每到整点,蜂鸣器警报响起,同时黄色 LED 闪烁。之前的章节中已经对 SAKS 扩展板上 LED 的使用做了介绍。SAKS 扩展板上的蜂鸣器和 LED 同样,都是低电平开启。

需要说明的是,SAKS 扩展板上的蜂鸣器是有源蜂鸣器,操作简便,但只能发出一种频率的鸣叫声。而另有一种无源蜂鸣器,则需要通过方波来驱动其发声,可以控制方波的频率实现不同音阶的鸣叫声。

本例程中涉及到的 SAKS 扩展板引脚编号如下:

功能

注释

BOARD
编码

BCM
编码

wiringPi
编码

蜂鸣器 BUZZER-B1 有源蜂鸣器 23 11 14
LED排灯 LED-D8 LED(黄) 26 7 11

下面是实现上述功能的代码,同样够简单。


#!/usr/bin/env python

# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO

import time

import sys



PIN_NO_BEEP = 11

PIN_NO_LED = 7



GPIO.setmode(GPIO.BCM)

GPIO.setup(PIN_NO_BEEP, GPIO.OUT, initial=GPIO.HIGH)

GPIO.setup(PIN_NO_LED, GPIO.OUT, initial=GPIO.HIGH)



# 单次哔声和LED发光

def beep(seconds):

    GPIO.output(PIN_NO_BEEP, GPIO.LOW)

    GPIO.output(PIN_NO_LED, GPIO.LOW)

    time.sleep(seconds)

    GPIO.output(PIN_NO_BEEP, GPIO.HIGH)

    GPIO.output(PIN_NO_LED, GPIO.HIGH)



# 多次哔声和LED发光封装函数,输入参数分别为“占空时间”以及重复次数

def beepAction(secs, sleepsecs, times):

    for i in range(times):

        beep(secs)

        time.sleep(sleepsecs)



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 w==0 or w==6:

        #    continue

        # 以下代码判断当时间在晚间22点至早间8点期间不报时以免影响睡眠

        if h > 22 or h < 8:

            continue

        # 小时数N大于12点的情况下,哔N-12次

        if h > 12:

            h = h - 12

        beepAction (0.3, 0.5, h)

        time.sleep(1)

    # 判断是否为30分

    if m == 30 and s == 0:

        if h > 22 or h < 8:

            continue

        # 快节奏哔2声

        beepAction (0.05, 0.05, 2)

        time.sleep(1)

代码说明参看注释即可秒懂。将完整代码保存为 chime.py 接下来运行。

sudo python chime.py

后面我们后面将开始介绍如何基于 SAKS 扩展板 DIY 各种有趣、实用的东西,欢迎持续关注!

本文属于《树莓派瑞士军刀扩展板(SAKS)DIY 教程》系列文章,查看系列文章目录,请访问:../../../nopathsource/fe9e9968c5df92f612fe55580cbf7e19.htmlswiss-army-knife-shield-for-raspberry-pi-diy-tutorials

这是一篇发布于 9年 前的文章,其中的信息可能已经有所发展或是发生改变,请了解。


1 评论

发表评论

你的邮件地址不会公开


*