有源蜂鸣器模块

相信大家对蜂鸣器都不会陌生,我们在很多方案中都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警,比如按键按下、开始工作、工作结束或是故障等等。

惯用驱动蜂鸣器的方式有两种:一种是 PWM 输出口直接驱动,另一种是利用I/O 定时翻转电平产生驱动波形对蜂鸣器进行驱动。

  1. PWM 输出口直接驱动是利用 PWM 输出口本身可以输出一定的方波来直接驱动蜂鸣器。在单片机的软件设置中有几个系统寄存器是用来设置 PWM 口的输出的,可以设置占空比、周期等等,通过设置这些寄存器产生符合蜂鸣器要求的频率的波形之后,只要打开 PWM 输出,PWM 输出口就能输出该频率的方波,这个时候利用这个波形就可以驱动蜂鸣器了。比如频率为 2000Hz的蜂鸣器的驱动,可以知道周期为 500μs,这样只需要把 PWM 的周期设置为 500μs,占空比电平设置为 250μs,就能产生一个频率为 2000Hz 的方波,通过这个方波再利用三极管就可以去驱动这个蜂鸣器了。
  2. 而利用 I/O 定时翻转电平来产生驱动波形的方式会比较麻烦一点,必须利用定时器来做定时,通过定时翻转电平产生符合蜂鸣器要求的频率的波形,这个波形就可以用来驱动蜂鸣器了。比如为 2500Hz 的蜂鸣器的驱动,可以知道周期为 400μs,这样只需要驱动蜂鸣器的 I/O 口每 200μs 翻转一次电平就可以产生一个频率为2500Hz,占空比为 1/2duty 的方波,再通过三极管放大就可以驱动这个蜂鸣器了。

连接图

Arduino 代码

const int Pin = 8; 
void setup()
{
  pinMode(Pin, OUTPUT);
}
void loop()
{
  digitalWrite(Pin, LOW);
  delay(1000);
  digitalWrite(Pin, HIGH);
  delay(1000);
}

results matching ""

    No results matching ""