Arduino 入门教程GO 第四章 Arduino的声音-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 534|回复: 0

Arduino 入门教程GO 第四章 Arduino的声音

[复制链接]
发表于 2022-1-17 13:51 | 显示全部楼层 |阅读模式
本帖最后由 OpenJumper 于 2022-1-17 13:51 编辑

[md]## 一、用蜂鸣器模拟警报器

在上一章完成了LED的呼吸灯试验之后,我们关于LED的实验就暂时告一段落了,在接下来的几章里,我们将要接触到一些新的元器件以及新的模块,今天我们首先要学习的是,用蜂鸣器来模拟警报装置。

## 二、实验器材

+ UNO控制板:1块

+ 无源蜂鸣器:1个

+ 面包板:1块

+ 面包板跳线:若干

## 三、连线示意图

01.jpg
图4-1


## 四、硬件连接图

02.jpg
图4-2


## 五、硬件知识要点

首先我们先来看电路图,实际上这次的电路十分的简单,除了我们的UNO控制板之外,就只有一个无源蜂鸣器和两根跳线,有一点是我们一定需要注意的,就是蜂鸣器一定是无源蜂鸣器,目前市面上还有一种蜂鸣器是有源蜂鸣器,这种蜂鸣器用来做我们的实验是不行的。

将蜂鸣器拿到手以后大家可以发现,我们的蜂鸣器上面是标明了极性的,但是无源蜂鸣器实际上是没有极性的,只有有源蜂鸣器才是有极性的,之所以我们的蜂鸣器标明了极性,是因为为了节约生产成本,统一使用了有源蜂鸣器的封装。

## 六、程序编写[/md]
  1. void setup()
  2. {
  3. }

  4. void loop()
  5. {
  6. for(int i=200;i<=800;i++)                    //用循环的方式将频率从200HZ 增加到800HZ
  7. {
  8.   pinMode(4,OUTPUT);
  9.   tone(4,i);                            //在四号端口输出频率
  10. delay(5);                              //该频率维持5毫秒   
  11. }
  12. delay(4000);                            //最高频率下维持4秒钟
  13. for(int i=800;i>=200;i--)
  14. {
  15.   pinMode(4,OUTPUT);
  16.   tone(4,i);
  17. delay(10);
  18. }
  19. }
复制代码

[md]
## 七、程序知识要点

在今天的程序中,我们使用了一个新的函数tone(),

tone()是一个调声函数,主要用于Arduino连接蜂鸣器或扬声器发声,可以让指定的引脚产生一个占空比为50%的指定频率的方波。

noTong(pin):停止指定引脚上的方波输出。

## 八、知识拓展

在本章节的知识拓展中,我们教给大家通过模拟电位器模块控制蜂鸣器发声频率:
[/md]
  1. void setup() {
  2.   Serial.begin(9600);  // 初始化串口通信
  3. }

  4. void loop() {
  5.   int sensorReading = analogRead(A0);// 从A0口读模拟传感器的值
  6.   Serial.println(sensorReading);//串口输出独到的传感器的值

  7.   int thisPitch = map(sensorReading, 400, 1000, 120, 1500);
  8. //输入的模拟值范围以一比例转换到适合值 (此为400—1000)
  9. // 音律范围为 (120 - 1500Hz)
  10.   tone(9, thisPitch, 10);// 播放音频  接arduino9号端口,thispitch为播放频率,10为维持时间
  11.   delay(1);
  12. }
复制代码

[md]打开串口可显示A0口独到的模拟值,同时旋转模拟电位器便可改变蜂鸣器发声频率。[/md]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-28 08:15 , Processed in 0.075596 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表