蜂鸣器-arduino

📅 2026/7/13 4:01:50
蜂鸣器-arduino
蜂鸣器分有源蜂鸣器 和 无源蜂鸣器蜂鸣器实验蜂鸣器是一种简易的发声设备。虽然它灵敏度不高但是制作工艺简单成本低廉。因此常用在计算机、电子玩具和定时器等设备中本章将详细讲解蜂鸣器的各种使用方式。蜂鸣器的工作原理及分类蜂鸣器是通过给压电材料供电来发出声音的。压电材料可以随电压和频率的不同产生机械变形从而产生不同频率的声音。蜂鸣器又分为有源蜂鸣器和无源蜂鸣器两种这两种蜂鸣器如图所示。有源蜂鸣器内部集成有震荡源因此只要为其提供直流电源就可以发声。对应的无源蜂鸣器由于没有集成震荡源因此需要接在音频输出电路中才可以发声。区分有源和无源蜂鸣器可以从外观来初步判断无源蜂鸣器的电路板通常是裸露的有源蜂鸣器的电路通常是被黑胶覆盖的。更精确的判断方法是通过万用表来测量蜂鸣器的电阻。无源蜂鸣器的电阻一般为8或12Ω有源蜂鸣器的电阻则要大得多。有源蜂鸣器由于有源蜂鸣器内部集成有震荡源因此无须在电路中提供震荡源。这样驱动有源蜂鸣器就变得非常简单完全可以使用与驱动LED类似的程序来驱动。有源蜂鸣器只要通入电流就可以发声所以这里只需要将Arduino的数字输出端口与蜂鸣器的正极连接即可驱动有源蜂鸣器的代码如下所示。运行代码int buzzerpin10;//定义蜂鸣器引脚——10号 void setup() { // put your setup code here, to run once: pinMode(buzzerpin, OUTPUT);//设置阵脚模式为输出 } //交替向针脚输出高低压 void loop() { // put your main code here, to run repeatedly: digitalWrite(buzzerpin, HIGH); delay(1000); digitalWrite(buzzerpin, LOW); delay(1000); }无源蜂鸣器由于无源蜂鸣器在内部没有集成震荡源因此需要驱动电路提供震荡源才能正常工作。Arduino语言提供了tone()函数来驱动无源蜂鸣器该函数的原型如下tone(pin,frequency.[duration])其中参数pin表示方波输出的针脚frequency表示方波的频率以赫兹(Hz)为单位duration表示持续的时间以毫秒(ms)为单位该参数是可选的。如果在调用tone()函数的过程中不指定持续时间(duration)那么tone()函数会一直持续执行直到程序调用noTone()函数为止。noTone()函数用来停止tone()函数产生的方波该函数原型为noTone(pin)其中参数pin表示方波输出的针脚.无源蜂鸣器的元器件接法与有源蜂鸣器接法类似如图所示。代码int buzzerpin10;//定义蜂鸣器引脚——10号 void setup() { // put your setup code here, to run once: } //交替向针脚输出高低压 void loop() { // put your main code here, to run repeatedly: tone(buzzerpin,520);//向蜂鸣器针脚输出520HZ的方波来驱动蜂鸣器发声 delay(1000); noTone(buzzerpin);//停止生成方波蜂鸣器不在发生 delay(1000); }