Arduino 蜂鸣器学习笔记教程

一、基础概念

蜂鸣器是一种能将电信号转化为声音信号的电子元件,在 Arduino 项目里,常借助 tone() 等函数控制,让其发出不同频率声音,实现报警、提示音等功能 。

二、核心函数

1. pinMode(pin, mode)

  • 作用:配置引脚模式,让指定引脚作为输入或输出,控制蜂鸣器需设为 OUTPUT(输出模式 )。
  • 参数:pin 是引脚编号(如 3 号引脚 ),mode 常用 INPUT(输入 )、OUTPUT(输出 )。

2. tone(pin, frequency)

  • 作用:让指定引脚输出特定频率方波,驱动蜂鸣器发声,频率决定音调高低 。
  • 参数:pin 是控制蜂鸣器的引脚,frequency 是声音频率(单位赫兹,范围一般 31 - 65535 ,不同蜂鸣器有差异 )。

3. noTone(pin)

  • 作用:停止指定引脚的 tone 信号输出,让蜂鸣器停止发声 。

4. delay(time)

  • 作用:让程序暂停执行指定时长,单位毫秒,用于控制声音持续时间、间隔等 。

三、代码示例与注释

示例 1:让蜂鸣器持续以固定频率发声

// 定义控制蜂鸣器的引脚为3号引脚,方便后续调用,不用重复写数字,修改引脚时更便捷
const int tonePin = 3; 

// setup函数:Arduino上电或复位后,只执行一次的初始化代码
void setup() { 
  // 将tonePin(即3号引脚)设置为输出模式,这样才能向蜂鸣器输出控制信号
  pinMode(tonePin, OUTPUT); 
}

// loop函数:setup执行完后,会不断循环执行里面的代码
void loop() { 
  // 使用tone函数,让连接在tonePin引脚的蜂鸣器,以100Hz频率持续发声
  tone(tonePin, 100); 
  // tone函数参数说明:第一个是控制引脚,第二个是声音频率,频率范围通常可设 0~10000 等(不同蜂鸣器有差异,实际测试调整)
}

示例 2:简化写法,直接用引脚号控制(功能同示例 1 )

// setup函数,初始化操作,只执行一次
void setup() { 
  // 直接把3号引脚设为输出模式,用于控制蜂鸣器
  pinMode(3, OUTPUT); 
}

// loop函数,循环执行代码
void loop() { 
  // 让3号引脚输出100Hz频率信号,驱动蜂鸣器发声
  tone(3, 100); 
}

示例 3:让蜂鸣器按 “不同频率发声 - 暂停” 规律循环

// setup函数,初始化引脚模式
void setup() { 
  // 把3号引脚设为输出,为控制蜂鸣器做准备
  pinMode(3, OUTPUT); 
}

// loop函数,循环执行实现蜂鸣器的声音变化逻辑
void loop() { 
  // 让3号引脚输出200Hz频率信号,蜂鸣器发对应音调声音
  tone(3, 200); 
  // 延迟1000毫秒(1秒),保持200Hz频率发声1秒
  delay(1000); 
  
  // 改变频率为100Hz,蜂鸣器发出更低音调声音
  tone(3, 100); 
  // 再延迟1000毫秒(1秒),维持100Hz频率发声1秒
  delay(1000); 
  
  // 停止3号引脚的tone信号输出,蜂鸣器停止发声
  noTone(3); 
  // 延迟2000毫秒(2秒),让蜂鸣器保持静音2秒
  delay(2000); 
}

四、实际操作与效果

  • 硬件连接:一般把蜂鸣器正极接 Arduino 数字引脚(如 3 号 ),负极接 GND(地 )。
  • 上传代码:用 Arduino IDE ,选对应开发板、端口,点 “上传” 按钮,代码传进 Arduino 。
  • 效果观察
    • 示例 1、2 中,蜂鸣器会持续发出 100Hz 频率声音。
    • 示例 3 里,蜂鸣器先以 200Hz 响 1 秒,再以 100Hz 响 1 秒,接着静音 2 秒,循环往复 。

五、注意事项

  1. 引脚选择:除数字引脚 3 ,也可选其他支持 tone 功能的数字引脚(如 5、6 等 ),但要和硬件连接对应 。
  2. 频率范围:不同蜂鸣器能稳定发声的频率范围有别,若声音异常,可调整频率值测试 。

0 条评论

目前还没有评论...