概述
在本课中我们将学习如何用Raspberry Pi驱动有源蜂蜜器。
所用物料
1 * Raspberry Pi
1 * Breadboard
1 * Buzzer
Jumper wires
1 * T-Extension Board
1 * 40-Pin Cable
工作原理
蜂鸣器分为有源蜂蜜器和无源蜂蜜器,我们这里使用有源蜂鸣器。有源蜂鸣器和无源蜂蜜器的区别是,有源蜂鸣器有内置震荡源,只有通电就会响,而无源蜂蜜器不含内置的震荡源,需要一个方波信号才能驱动它。
蜂蜜器有两个引脚,长的一个引脚是正极(阳极),短的一个脚是负极(阴极),下图是蜂鸣器的电气符号表示
在本课中我们将蜂鸣器负极接到Raspberry Pi的GPIO 1(BCM_GPIO 18)上,正极接到3.3V上,如下图所示
实物连线图
还没画(o(╯□╰)o)
软件
如果你是C语言用户,请参考下面步骤。
1) 在/home/pi目录下新建一个.c源文件,名字随意(你开心就好)
cd ~
sudo nano buzzer.c
2) 编码
#include <wiringPi.h> #include <stdio.h> #include <stdlib.h> #define BuzzerPin 1
首先要包含这个程序需要用到的头文件,将蜂鸣器接到GPIO1(BCM_GPIO18)口上。
for(;;){ for(i=0;i<70;i++){ //beep on digitalWrite(BuzzerPin, LOW); delay(3); //beep off digitalWrite(BuzzerPin,HIGH); delay(3); } delay(100); for(i=0;i<100;i++){ //beep off digitalWrite(BuzzerPin, HIGH); delay(1); //beep on digitalWrite(BuzzerPin,LOW); delay(1); } //delay(100); }
在主循环中,通过两个for语句让蜂鸣器发出不同频率的声音。
完整的程序源码。可以在命令行运行下面命令获取
sudo wget http://osoyoo.com/driver/pi3_start_learning_kit_lesson_8/buzzer.c
3) 编译
gcc -Wall -o buzzer buzzer.c -lwiringPi
4) 运行程序
sudo ./buzzer
5) 最终结果
执行程序后,屏幕上会打印出蜂鸣器与GPIO的连接情况以及其他提示信息,同时,蜂鸣器发出不同声音。
对于python用户
1) 在/home/pi下新建一个.py脚本文件,文件名随意(你爱咋咋地)
cd ~
sudo nano buzzer.py
2) 编码
import RPi.GPIO as GPIO import time # Set #18 as buzzer pin BuzzerPin = 18
首先导入程序运行依赖的软件模块,将蜂鸣器接到GPIO 1(BCM_GPIO 18)上
def setup(): # Set the GPIO modes to BCM Numbering GPIO.setmode(GPIO.BCM) # Set BuzzerPin's mode to output, # and initial level to High(3.3v) GPIO.setup(BuzzerPin, GPIO.OUT, initial=GPIO.HIGH)
将BuzzerPin脚设置成输出模式,初始电平为高电平(3.3V)
def main(): print_message() while True: GPIO.output(BuzzerPin, GPIO.LOW) time.sleep(0.3) GPIO.output(BuzzerPin, GPIO.HIGH) time.sleep(0.3)
在主循环中将BuzzerPin引脚电平不断切换,使蜂鸣器间歇性发声。
完整的代码,可以通过下面命令获取到
sudo wget http://osoyoo.com/driver/pi3_start_learning_kit_lesson_8/buzzer.py
3) 运行程序
sudo python ./buzzer.py
4) 最终结果
执行脚本,屏幕上会打印出蜂鸣器与GPIO连接信息,同时蜂鸣器发出哔哔的响声。
DownLoad Url osoyoo.com