概述
注:对于ESP8266开源技术感兴趣的可以加群,我们一起探索交流学习,群号:579932824。群名:ESP8266开源技术交流群。
本文的目的是解释如何使用ESP8266控制无源蜂鸣器模块。
硬件
在本教程中,我们假设使用无源蜂鸣器,集成在电路板中,允许我们使用微控制器的IO引脚直接控制它。如图1所示。
图1 - 无源蜂鸣器模块。
如图所示,有一个引脚为器件供电,另一个引脚实际控制它。
重要提示:不要使用晶体管或任何其他方法将ESP8266的数字引脚直接连接到蜂鸣器,以便为器件提供电流。ESP8266的GPIO只能提供12 mA ,蜂鸣器会消耗更多,这可能会损坏微控制器。
因此,我们将ESP8266连接到蜂鸣器模块,如图2所示。如果您使用的是NodeMCU,请注意电路板上指示的引脚编号与ESP8266中的引脚不对应。
图2 - ESP8266和蜂鸣器模块之间的连接图。
由于我们使用无源蜂鸣器,我们需要生成方波来控制声音。IO引脚产生的方波频率将是声音的频率。因此,控制蜂鸣器会稍微复杂一些,因为它不会像LED那样开/关,但我们会有更多的自由,因为我们将能够改变频率。
软件
本教程的代码非常简单,因为我们将使用tone函数,它为我们执行大部分工作。请确保您使用的是最新版本的ESP8266库,以确保提供音调功能。
此函数有两个参数:第一个对应于将生成控制蜂鸣器的方波的引脚,第二个对应于要使用的频率。
另外,我们可以传递第三个参数,指定输出方波的时间。在我们的示例中,我们不会使用第三个参数,因为我们将使用延迟函数控制声音的持续时间。因此,如果我们不传递第三个参数,方波将保持不变,直到我们在同一个引脚上调用noTone函数。
我们将假设我们的蜂鸣器将以1000 Hz的频率播放并且将嗡嗡声持续1秒,然后保持关闭1秒,然后重复,以获得双模式。另外,如硬件部分所示,我们考虑使用引脚2输出控制蜂鸣器的方波。
为了使代码易于更改,我们首先声明4个全局变量并为它们分配相应的值。
int frequency = 1000; //以Hz为单位指定
int buzzPin = 2;
int timeOn = 1000; //以毫秒为单位指定
int timeOff = 1000; //以毫秒为单位指定
对于这个简单的例子,我们可以跳转设置函数并将以下代码放在循环中:
void loop(){
tone(buzzPin, frequency);
delay(timeOn);
noTone(buzzPin);
delay(timeOff);
}
因此,我们通过调用音调功能激活引脚2中的1000 Hz方波,并且蜂鸣器开始播放。我们等待1秒钟,然后我们使用noTone功能停止蜂鸣器。然后我们再等一秒,然后重复这个过程。
最后
以上就是幸福乌冬面为你收集整理的ESP8266基础开发(二)-- 控制蜂鸣器的全部内容,希望文章能够帮你解决ESP8266基础开发(二)-- 控制蜂鸣器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复