树莓派蜂鸣器python代码_树莓派之蜂鸣器模块基础应用
此教程教学使用有源蜂鸣器鸣叫、有有节奏地鸣叫/无源蜂鸣器控制输出“哆来咪”、演奏歌曲。
蜂鸣器
蜂鸣器分为有源蜂鸣器与无源蜂鸣器
·无源蜂鸣器内部不带震荡源,所以如果用直流电信号则无法令其鸣叫,须用2K-5K的方波(PWM)驱动;
声音频率可控,可以做出“哆来咪发索拉西”的效果。
·有源蜂鸣器内部带震荡源,通电就鸣叫。
方便程序控制,一个高地电平就可以让其发出声音。
线路连接(有源蜂鸣器与无源蜂鸣器方法相同)
蜂鸣器上的VCC(正极)端连接树莓派3.3v引脚(物理引脚1),I/O端连接树莓派GPIO.0(物理引脚11),将GND(负极)对接GND引脚(物理引脚9)。连接稳固后上电开机。*连接线路时树莓派务必断电操作
有源蜂鸣器鸣叫
编写程序bee.py
import RPi.GPIO as GPIO #导入函数
import time
GPIO.setmode(GPIO.BOARD) #定义数据口
GPIO.setup(11, GPIO.OUT)
while True:
GPIO.output(11, GPIO.HIGH) #根据模块高低电平调整时间及模式
time.sleep(3)
GPIO.output(11, GPIO.LOW) #如是低电平触发,结果为每相隔3秒蜂鸣器鸣叫0.1秒
time.sleep(0.1)
GPIO.cleanup() #结束进程,释放GPIO引脚
运行程序结果为蜂鸣器每3秒蜂鸣器短鸣一声。可以调整时间改变想要的效果。
有源 蜂鸣器有节奏地鸣叫
编写程序bee2.py
import RPi.GPIO as GPIO #导入函数
import time
GPIO.setmode(GPIO.BOARD) #定义数据口
GPIO.setup(11, GPIO.OUT)
def beep(seconds):
GPIO.output(11, GPIO.LOW) #根据模块高低电平触发调正输出信号
time.sleep(seconds)
GPIO.output(11, GPIO.HIGH)
def beepAction(secs, sleepsecs, times):
for i in range(times):
beep(secs)
time.sleep(sleepsecs)
beepAction(0.02,0.2,15) #(鸣叫时间,停顿间隔时间,总时长)
GPIO.cleanup() #结束进程,释放GPIO引脚
运行程序结果蜂鸣器有节奏的鸣叫,可以修改程序中调用函数beepActionde的参数让鸣叫不一样。
更换为无源蜂鸣器模块进行以下教程 *连接线路时树莓派务必断电操作
无源蜂鸣器控制输出“哆来咪”
编写程序beeDRM.py
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, GPIO.OUT)
def buzz(pitch, duration):
period = 1.0/pitch
delay = period / 2
cycles=int(duration*pitch)
for i in range(cycles):
GPIO.output(11, GPIO.LOW)
time.sleep(delay)
GPIO.output(11, GPIO.HIGH)
time.sleep(delay)
while(True):
pitch_s = input("Enter Pitch (200 to 2000,do262,rui294,mi330)")
pitch= float(pitch_s)
duration_s= input("Enter Duration (Seconds)")
duration=float(duration_s)
buzz(pitch, duration)
运行程序在命令行窗口是显示出输入频率(200-2000)然后是输入鸣叫时间,分别输入回车确认就可以根据所输入的数值鸣叫。
无源 蜂鸣器演奏歌曲
编写程序beestar.py
import RPi.GPIO as GPIO
import time
Buzzer = 11
CM = [0, 330, 350, 393, 441, 495, 556, 624] #定义频率
song_3 = [ CM[1],CM[1],CM[5],CM[5],CM[6],CM[6],CM[5],CM[4],CM[4],CM[3],
CM[3],CM[2],CM[2],CM[1],CM[5],CM[5],CM[4],CM[4],CM[3],CM[3],
CM[2],CM[5],CM[5],CM[4],CM[4],CM[3],CM[3],CM[2],CM[1],CM[1],
CM[5],CM[5],CM[6],CM[6],CM[5],CM[4],CM[4],CM[3],CM[3],CM[2],
CM[2],CM[1],]
beat_3 = [ 0.5,0.5,0.5,0.5,0.5,0.5,1,0.5,0.5,0.5,0.5,0.5,0.5,1,0.5,0.5,0.5,0.5,0.5,0.5,1,
0.5,0.5,0.5,0.5,0.5,0.5,1,0.5,0.5,0.5,0.5,0.5,0.5,1,0.5,0.5,0.5,0.5,0.5,0.5,1,]
def setup():
GPIO.setmode(GPIO.BOARD)
GPIO.setup(Buzzer, GPIO.OUT)
global Buzz
Buzz = GPIO.PWM(Buzzer, 440)
Buzz.start(50) #按50%工作定额启动蜂鸣器引脚
def loop():
while True:
print('\n Playing song 3...')
for i in range(1, len(song_3)):
Buzz.ChangeFrequency(song_3[i])
time.sleep(beat_3[i]) #延迟一个节拍* 0.2秒的音符
def destory():
Buzz.stop()
GPIO.output(Buzzer, 1)
GPIO.cleanup()
if __name__ == '__main__':
setup()
try:
loop()
except KeyboardInterrupt:
executed.
destory()
运行程序蜂鸣就会演奏小星星歌曲,可以找寻歌曲的曲谱更改程序的参数来演奏。
树莓派蜂鸣器python代码_树莓派之蜂鸣器模块基础应用相关推荐
- 树莓派蜂鸣器python代码_树莓派+蜂鸣器=整点报时器
试了下用树莓派外加一个有源蜂鸣器,实现了一个简单的报时功能. 对于有源.无源蜂鸣器的区别,简短介绍下: 一.无源蜂鸣器: 1.无源内部不带震荡源,所以如果用直流信号无法令其鸣叫.必须用2K~5K的方波 ...
- 树莓派蜂鸣器python代码_树莓派接入无源蜂鸣器
x淘购得一无源蜂鸣器,附带文档只有Arduino的测试代码. 只有自行探索接线方式以及测试代码. 无源蜂鸣器需要脉宽调制(PWM)信号,查询得知GPIO的物理pin 12有此功能.用杜邦线连接无源蜂鸣 ...
- 在树莓派里面运行python代码_树莓派如何运行python程序
树莓派如何运行python程序 发布时间:2020-09-23 12:03:39 来源:亿速云 阅读:128 作者:小新 这篇文章主要介绍了树莓派如何运行python程序,具有一定借鉴价值,需要的朋友 ...
- 树莓派小车python代码_【树莓派】树莓派小车(二)树莓派、小车和红外线模块连接...
上一篇文章介绍了小车底盘以及驱动板的安装,这一次来讲一讲树莓派与驱动板以及红外线模块的安装. 树莓派的GPIO引脚定义: 树莓派的GPIO引脚共分为两种类型,一种是PHYSICAL NUMBERING ...
- 人口发展方程python代码_中国大学mooc2020Python编程基础答案查题公众号
如果y=k1/2,s=0.4,折旧率=20%,稳态人均资本存量为().A.4B.8C.12D.16 根据索洛经济增长模型,一国人均收入的长期增长主要取决于资本积累速度,即取决于储蓄率. 程序计数器PC ...
- python猜谜语小游戏代码_树莓派趣学实战100例--网络应用+Python编程+传感器+服务器搭建...
导语 内容提要 本书是面向第4代树莓派(Raspberry Pi4B)的全新实战指南.树莓派(Raspberry Pi)是一款价格低廉.只有一张信用卡大小的计算机.然而麻雀虽小,却五脏俱全,树莓派是一 ...
- 树莓派能直接运行python程序_树莓派怎么运行python程序
树莓派运行Python程序的方法: 一.RaspBerry系统设置 1.首先在开发板没有通电情况下,连接硬件,以及项目中用到传感器.比如当前项目需要将LED灯插在面包板上,然后通过杜邦线将开发板和面包 ...
- 树莓派python蓝牙_树莓派的蓝牙操作
树莓派端的蓝牙操作 首先利用ssh登录树莓派(假设用户名为pi) ssh pi@xxx.xxx.xxx.xxx 更新软件源.软件包等相关操作: sudo apt-get update sudo apt ...
- 树莓派python摄像头_树莓派摄像头Camera的使用
树莓派摄像头Camera的使用 一.安装 1.硬件安装 2.打开Raspberry Pi配置工具开启Camera 二. 如何通过命令行控制摄像头模块 现在您的相机模块已连接且软件已启用,请尝试使用命令 ...
- python树莓派串口通信实例_树莓派通过串口发送数据
可以通过串口登陆树莓派,也可以通过串口向其他主机发送数据.树莓派的串口接受数据科技爱好者博客已经写过,可以参考这篇文章:树莓派与arduino串口通信实践.这篇文章教大家如果通过树莓派的串口发送数据. ...
最新文章
- tp剩余未验证内容-8
- Fitnesse测试系列--如何做成模块Module供调用
- RuntimeError: Found dtype Double but expected Float”
- pythonurllib模块-python爬虫之urllib模块和requests模块学习
- 第五十三篇、OC利用AFN上传视频到服务器
- angular接口传参
- 51nod 1101 换零钱 简单dp
- django处理select下拉表单(从model到前端到post到form)
- centeros mysql_center os 7 Mysql 安装
- 【大数据】0002---MongoDB集群自动分离创建新集群
- 电脑只有一个c盘怎么办_新买的电脑,拿到手只有一个C盘,如何分成两个盘
- 从一个小程序说起 - C++快速入门02
- 手机微商城可以安装到虚拟服务器,安装使用:百家CMS微商城系统安装教程(图文说明)...
- 数学:深入浅出通信原理(陈爱军)
- 【制作脑图】万彩脑图大师教程 | 概括主题
- 【Virtual Box 错误】0x00000000 指令引用的 0x00000000 内存。该内存不能为written
- 不积跬步,无以至千里 small tips
- 同学,你这简历上没项目啊!
- 微信小程序实现腾讯地图定位功能-demo
- Software Architecture Pattern(Mark Richards)笔记