【史上最全面esp32教程】蜂鸣器篇(是噪声还是音乐?)

简介: 【史上最全面esp32教程】蜂鸣器篇(是噪声还是音乐?)

前言

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“ZZG”、“LB”、“JD”等)表示。

蜂鸣器用的好就是音乐,用的不好,就会变成一个噪音。所以大家这节课要好好学。


提示:以下是本篇文章正文内容,下面案例可供参考


步骤

将蜂鸣器的正极接到ESP32开发板的GPIO口,负极接到GND口。

使用ESP32的Arduino IDE编写代码,将GPIO口设置为输出模式,并将其设置为高电平,以便控制蜂鸣器。

上传代码到ESP32开发板,蜂鸣器就会发出声音。


Beep函数

引脚说明:

连接指定pin脚到Beep的引脚上。

Beep是通过电平的反转来实现发声的。

反转是什么意思:就是一个时间段内从高电平到低电平再到高电平的一个过程,在C语言中这样表示:

char status = 0;
while(1)
{
  status = !status;
}

delayMicroseconds延时微秒函数

delayMicroseconds(us)

其他的在上节LED是一样的,Beep的引脚模式为OUTPUT。

如果你忘记的,请看【史上最全面esp32教程】点灯大师篇

蜂鸣器响:

#define beep_pin  33
char g_i=0;
void setup() {
  pinMode(beep_pin, OUTPUT);//设置引脚为输出模式
}
void loop() {
  g_i=!g_i;
  digitalWrite(beep_pin,g_i);//引脚输出电平翻转
  delayMicroseconds(250);//延时250us
}

我们通过改变delayMicroseconds延时的时间可得知,延时越大,电平翻转的越慢,声音越低。反之亦然。

无源蜂鸣器和有源蜂鸣器

区分:

有贴纸的:有源蜂鸣器

无贴纸的:无源蜂鸣器

在PWM里面我们会讲如何控制他使用指定的频率。

结论

使用ESP32控制蜂鸣器是一件很容易的事情,只需要几个简单的步骤就可以完成。此外,ESP32还可以控制其他外设,为用户提供更多的功能。


目录
打赏
0
2
0
0
60
分享
相关文章
【史上最全面esp32教程】激超声波模块测距篇
【史上最全面esp32教程】激超声波模块测距篇
799 0
【史上最全面esp32教程】激光与食人鱼模块篇
【史上最全面esp32教程】激光与食人鱼模块篇
272 0
一起玩转树莓派(19)——红外遥控控制实验
红外遥控是生活中非常常见的电子器具,电视机,空调,音响等电器都可以通过遥控器进行控制。本篇博客,我们尝试来通过红外发生器和红外信号接受器来进行红外控制实验,在树莓派上通过红外遥控的按键来处理LED灯的控制。
2050 0
投射式触摸屏自电容与互电容工作原理基础(未完待续)
一、电阻屏触控原理: 类似可变电阻,当可变电阻的两端接一个正电压V+,另一端接地,当调整电阻值后,测量调整点与接地端的电压值,然后根据欧姆定律,计算出调整点与接地点的电压值。 二、电容屏常见形式: (1)表面电容式(SCT,Surface,Capacitive Touch) 当手指触摸在金属层上时,由于人体电场,用户触摸屏表面时形成一个耦合电容, 对于高频电流来说,电容是直接道题,于是手指从接触点吸走一个很小的电流。
5111 0
Arduino入门笔记(5):1602液晶实验(实现时钟)
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一、本次实验所需器材 1、Arduino板 https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-15820725129.16.AtgoEm&id=545093340395 2、1602液晶板:也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
1700 0
手把手教你写Linux设备驱动---input子系统(三)--电容屏事件坐标读取(基于友善之臂4412开发板)
前面我们学习了鼠标是如何如何通过应用程序来读取事件和坐标值的,后面也写了一个简单的input系统的按键驱动程序。 博文如下,讲的内容非常清楚,给小白来入手当然是非常容易的: http://blog.csdn.net/morixinguan/article/details/69808832 这节,我们来学习一下触摸屏事件获取,然后上一个基于4412开发板ft5x0x型号的x,y坐标值读取,后面我们将从零开始实现这款触摸屏的驱动程序: 首先,我们要明白一个概念,触摸屏在input系统中是一类什么事件呢? 前面我们知道,鼠标是相对事件,也就是相对一个位置的坐标点,那么不是固定的。
2202 0
Linux驱动基础(SR501人体感应模块)
Linux驱动基础(SR501人体感应模块)
155 0
【史上最全面esp32教程】oled显示篇
【史上最全面esp32教程】oled显示篇
1474 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等