|
本帖最后由 OpenJumper 于 2022-1-17 13:51 编辑
[md]## 一、用蜂鸣器模拟警报器
在上一章完成了LED的呼吸灯试验之后,我们关于LED的实验就暂时告一段落了,在接下来的几章里,我们将要接触到一些新的元器件以及新的模块,今天我们首先要学习的是,用蜂鸣器来模拟警报装置。
## 二、实验器材
+ UNO控制板:1块
+ 无源蜂鸣器:1个
+ 面包板:1块
+ 面包板跳线:若干
## 三、连线示意图
图4-1
## 四、硬件连接图
图4-2
## 五、硬件知识要点
首先我们先来看电路图,实际上这次的电路十分的简单,除了我们的UNO控制板之外,就只有一个无源蜂鸣器和两根跳线,有一点是我们一定需要注意的,就是蜂鸣器一定是无源蜂鸣器,目前市面上还有一种蜂鸣器是有源蜂鸣器,这种蜂鸣器用来做我们的实验是不行的。
将蜂鸣器拿到手以后大家可以发现,我们的蜂鸣器上面是标明了极性的,但是无源蜂鸣器实际上是没有极性的,只有有源蜂鸣器才是有极性的,之所以我们的蜂鸣器标明了极性,是因为为了节约生产成本,统一使用了有源蜂鸣器的封装。
## 六、程序编写[/md]
- void setup()
- {
- }
- void loop()
- {
- for(int i=200;i<=800;i++) //用循环的方式将频率从200HZ 增加到800HZ
- {
- pinMode(4,OUTPUT);
- tone(4,i); //在四号端口输出频率
- delay(5); //该频率维持5毫秒
- }
- delay(4000); //最高频率下维持4秒钟
- for(int i=800;i>=200;i--)
- {
- pinMode(4,OUTPUT);
- tone(4,i);
- delay(10);
- }
- }
复制代码
[md]
## 七、程序知识要点
在今天的程序中,我们使用了一个新的函数tone(),
tone()是一个调声函数,主要用于Arduino连接蜂鸣器或扬声器发声,可以让指定的引脚产生一个占空比为50%的指定频率的方波。
noTong(pin):停止指定引脚上的方波输出。
## 八、知识拓展
在本章节的知识拓展中,我们教给大家通过模拟电位器模块控制蜂鸣器发声频率:
[/md]
- void setup() {
- Serial.begin(9600); // 初始化串口通信
- }
-
- void loop() {
- int sensorReading = analogRead(A0);// 从A0口读模拟传感器的值
- Serial.println(sensorReading);//串口输出独到的传感器的值
-
- int thisPitch = map(sensorReading, 400, 1000, 120, 1500);
- //输入的模拟值范围以一比例转换到适合值 (此为400—1000)
- // 音律范围为 (120 - 1500Hz)
- tone(9, thisPitch, 10);// 播放音频 接arduino9号端口,thispitch为播放频率,10为维持时间
- delay(1);
- }
复制代码
[md]打开串口可显示A0口独到的模拟值,同时旋转模拟电位器便可改变蜂鸣器发声频率。[/md] |
|