一 、蜂鸣器的分类

有源蜂鸣器:

内部还有震荡电路(震荡源),可将恒定的直流电转化成一定频率的脉冲信号

无源蜂鸣器:

内部不带震荡源,直流信号无法令其鸣叫

二、驱动方式

1. 有源蜂鸣器

是直流电压驱动,不需要利用交流信号进行驱动,只需要对驱动口输出驱动电平并通过三极管放大驱动电流

2. 无源蜂鸣器

必须使用2K ~ 5K的方波进行驱动

1)PWM输出口输出一定的方波直驱蜂鸣器

2)IO口定时翻转电平来产生方波驱动蜂鸣器

对于无源蜂鸣器来说,一般是工作电压决定声声强,脉冲频率决定声调,各个厂家 的产品也有性能差异

单片机控制无源蜂鸣器参考文档:

https://tech.hqew.com/circuit_1171795

3.关于二者其他区别请查看文档:

有源蜂鸣器和无源蜂鸣器的区别_编程世界093的博客-CSDN博客

蜂鸣器扫盲,有源蜂鸣器和无源蜂鸣器区别

三、音调、响度和周期(频率)占空比的关系

  1. 音调和周期

频率高 = 音调高 = 周期小

音调固定 = 周期固定

2.响度和占空比

占空比大 = 响度大

一般影响蜂鸣器声音大小的物理属性都包括电压、线圈、支架,膜片等,有的时候甚至质量也会影响其音量。

四、Linux下 beep 控制说明

1.安装beep步骤

1)安装

sudo apt-get install beep

2)加载 pcspkr 模块

sudo modprobe pcspkr

3)检测是否以模块化加载成功

lsmod | grep pcspkr

4)指令测试是否响声(进入到beep所在目录)

cd /usr/bin/beep

beep -f 2300.7 -r 100 -d 710 -l 500

说明:pcspkr这个驱动应该被加入黑名单,可在一下路径查看

vi /etc/modprobe.d/blacklist.conf

2. beep源码

内部扬声器是控制台的一部分,所以它对应的设备文件为/dev/console。

变量KIOCSOUND在头文件 /usr /include /linux /kd.h中声明,

ioctl函数使用它可以来控制扬声器的发声,使用规则为:

ioctl ( fd, KIOCSOUND, (int) tone);

fd为文件设备号,tone 是音频值。当tone为0时,终止发声。必须一提的是它所 理解的音频和我们平常以为的音频是不同的,由于计算机主板定时器的时钟频率为 1.19MHZ,所以要进行正确的发声,必须进行如下的转换:扬声器音频值=1190000/我 们期望的音频值。扬声器发声时间的长短我们通过函数usleep(unsigned long usec)来 控制。它是在头文件/usr /include /unistd.h中定义的,让程序睡眠usec微秒。

3. 命令控制

cd /usr/sbin   (cd到beep执行文件所在目录)

./beep -f 2300.7 -r 100 -d 710 -l 500 

参数说明:

-f  beep的频率

-r  beep的重复次数

-d  两次重复间隔延时为多少毫秒

-l beep多久时间

-s和-c表示beep时需从stdin读取,s表示每读一行,c表示每读一字符

-verbose或-debug选项开启调试信息输出功能;

-e device或-device device选项设定event设备,未指定则尝试/dev/tty0和/dev/vc/0两设备

参考文档: Shell命令控制蜂鸣器发声_shell 声音_小猪快点跑的博客-CSDN博客

Shell命令控制蜂鸣器发声-百度经验

4.抓取不同频率下的蜂鸣器波形图

beep -f 300.7

beep -f 1300.7

蜂鸣器分类及声音控制说明相关推荐

  1. FPGA(4)晶振与计数器 -- 实现定时器(led定时闪烁、蜂鸣器频率控制(单响)、蜂鸣器报警(频带控制,多响))

    目录 一.FPGA的晶振与定时器 二.定时器(led闪烁.蜂鸣器频率控制) 1.时钟上升沿.复位下降沿触发 2.复位,计数器清零 3.计数满1s时,计数器清零 4-1.led闪烁(每秒) 4-2.蜂鸣 ...

  2. python 控制系统音量_pygame学习笔记(4):声音控制

    pygame.mixer是一个用来处理声音的模块,其含义为"混音器".游戏中对声音的处理一般包括制造声音和播放声音两部分,这里仅学习了播放声音部分. 1.pygame.mixer启 ...

  3. Flash MX as 声音控制分解

    教程前言: FLASH声音被广泛应用在网页.MTV.片头等FLASH动画当中.一段美好的音乐会给你的动画添加更多的精彩.声音的控制便成了必不可少的部分.本教程为大家从基础知识.简单示例到最后的实例制作 ...

  4. unity游戏开发入门-声音控制游戏

    声音控制游戏中人物的移动,关键在于声音的传入,这里关机键在于使用了Microphone 怎么使用呢?下面给一段我编写的声音传入的代码:(关键处已被标识) using System.Collection ...

  5. webrtc c++(二) webrtc音频操作麦克风录音与播放,声音控制

    由于新版本的webrtc工程太过于庞大,有一千读个工程,对于理解源码很不方便,所以以后都采用老版本的webrtc,以方便理解,这个版本有一百多个工程,相对于最新的工程要小很多 webrtc源码  下载 ...

  6. AS3 声音控制学习

    AS3中与声音控制有关的类有以下几个:   类 说明 1 Sound Sound类允许您在应用程序中使用声音. 2 SoundChannel SoundChannel类控制应用程序中的声音. 3 So ...

  7. Android 8.1/9.0 MTK Camera源码分析之录像快门声音控制流程

    前面已经针对拍照快门声音控制流程进行了分析,接下来分析一下录像快门声音的控制流程. Android 8.1/9.0 MTK Camera源码分析之快门声音控制流程 这两篇文章其实都是相对于手机系统RO ...

  8. Windows和Linux下的系统声音控制

    简介 项目中需要在windows和linux系统下对系统的声音进行控制,相关操作包括获取系统的音量,设置系统的音量,获取系统的静音状态和静音,特此记录相关的C++实现. 主要涉及的系统有windows ...

  9. Android中的声音控制

    先说几个概念,第一个是Audio Stream, Audio Stream可以认为是一个可以单独进行声音控制的通道.music,alarm,notification,电话铃声,系统声音等等都有自己独立 ...

最新文章

  1. SparkSQL(Spark-1.4.0)实战系列(一)——DataFrames基础
  2. Net编程 详解DataTable用法【转】
  3. C语言拾零(to be continued)
  4. 编程之美-寻找发帖“水王”方法整理
  5. TypeError: 'function' object is not subscriptable
  6. Go gin运行原理
  7. opencv学习笔记12:图像腐蚀和图像膨胀
  8. 05 Linux快速安装 Oracle11g
  9. getElementByClassName()不兼容的解决办法
  10. 线性调频信号(LFM)的形式及幅度谱、相位谱特性
  11. C++学习之路 | PTA乙级—— 1025 反转链表 (20分)(精简)
  12. Easyui中使用jquery或js动态添加元素时出现的样式失效的解决方法
  13. 中国银行外币汇率查询
  14. 21-nginx单机1W并发优化
  15. 通过CSS美化Web页面
  16. latex 输入下划线_
  17. mysql 少用in_mysql查询条件not in 和 in的区别及原因说明
  18. 小程序数据框有重影_微信小程序input重影什么原因?怎么解决重影?
  19. 红豆 2022年3月16日
  20. 解决关于腾讯会议黑屏问题(ThinkpadE420型号)

热门文章

  1. 关于Android针孔摄像头检测方法
  2. 软件测试工资直追开发,是我的错觉吗?
  3. pdf文件转bitmap再转图片
  4. swing-组件tooltip测试及美化
  5. 当涉及某个项目需要大量使用到tensorflow时,最后不要使用tensorflow的GPU版本,这会出很多毛病,最好使用CPU版本
  6. python中必须要会的四大高级数据类型(字符,元组,列表,字典)
  7. PHP调用API接口
  8. 计算机房图怎么画,任务6掌握机房平面图的绘制方法.ppt
  9. 关于erp系统最小采购量
  10. html css语义化