当前位置:   article > 正文

蜂鸣器分类及声音控制说明_无源蜂鸣器需要用什么来驱动它发生

无源蜂鸣器需要用什么来驱动它发生

一 、蜂鸣器的分类

有源蜂鸣器:

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

无源蜂鸣器:

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

二、驱动方式

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

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/323934
推荐阅读
相关标签
  

闽ICP备14008679号