esp32开发与应用(有源蜂鸣器)
·
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱: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了,就可以去看看代码流程了。
更多推荐


所有评论(0)