esp32开发与应用(有源蜂鸣器)
2026/6/14 16:59:51 网站建设 项目流程

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

要想让esp32发出点声音,这需要外界模块的帮助。如果是消费领域,一般是需要录音和播放音乐。工业领域的话,一个蜂鸣器就好了。当然,这里不需要那么复杂,所以就测一下蜂鸣器是怎么用的。有源蜂鸣器有一个很显著的特征,就是上面有一个贴纸,这是比较明显的。

1、有源蜂鸣器和无源蜂鸣器

这里的有源和无源是指内部有没有晶振,不是说需不需要电源。这些外部模块都是需要电源的。这里为了便利,直接用有源蜂鸣器进行测试,即通电的时候,发出声音;不通电的时候,停止发出声音。

有源蜂鸣器输入的是高低电平,而无源蜂鸣器一般是pwm方波。

2、连线部分

有源蜂鸣器就三根线,vcc/gnd/io。属于比较简单的那种。和传感器模块有点相像,只不过传感器是输出,这里是输入。vcc的话,接3.3v即可。

3、确认引脚

由于需要的引脚不多,所以esp32随便分配一个引脚给有源蜂鸣器即可,比如gpio15。

4、通过ai编写代码

因为内容比较简单,所以直接让ai来做是比较合适的。比如,告诉ai,生成一个esp32有源蜂鸣器的demo,不出意外的话,我们就可以得到这样的内容,

#include <stdio.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "driver/gpio.h" #define BUZZER_GPIO GPIO_NUM_15 void app_main(void) { gpio_config_t io_conf = { .pin_bit_mask = (1ULL << BUZZER_GPIO), .mode = GPIO_MODE_OUTPUT, .pull_up_en = GPIO_PULLUP_DISABLE, .pull_down_en = GPIO_PULLDOWN_DISABLE, .intr_type = GPIO_INTR_DISABLE }; gpio_config(&io_conf); while (1) { gpio_set_level(BUZZER_GPIO, 1); vTaskDelay(200 / portTICK_PERIOD_MS); gpio_set_level(BUZZER_GPIO, 0); vTaskDelay(200 / portTICK_PERIOD_MS); } }

5、编译、测试和验证

拿到代码,先别着急分析和阅读。首先第一步,看看是不是可以编译,无法编译的代码是没有价值的。接着,继续看看是不是可以烧录,这一点主要是看image是否符合要求。最好看执行效果,和我们预期的是否一致。这三点都ok了,就可以去看看代码流程了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询