驱动蜂鸣器

一、实验目的

驱动microROS控制板上的有源蜂鸣器,每间隔500毫秒响一声。

 

二、硬件连接

如下图所示,蜂鸣器为板载元器件,所以不需要外接其他设备,只需要把type-C数据线连接电脑与microROS控制板作为烧录固件功能即可。

image-20240110144417261

microROS控制板上的蜂鸣器为有源蜂鸣器,当GPIO引脚电平为高电平开启鸣笛,当GPIO引脚电平为低电平关闭鸣笛。

 

三、核心代码解析

程序源码对应的虚拟机路径为:

初始化蜂鸣器的GPIO,其中BEEP_GPIO对应硬件电路的GPIO46,GPIO模式设置为输出模式。

开启蜂鸣器,蜂鸣器一直鸣笛。

关闭蜂鸣器。

为了将蜂鸣器做到鸣笛超时自动关闭,需要在初始化蜂鸣器时开启蜂鸣器任务来管理蜂鸣器鸣笛时间。

Beep_Handle函数主要任务是在BEEP_STATE_ON_DELAY状态时自动减少beep_on_time的值,直到等于0则自动关闭蜂鸣器。

设置蜂鸣器开启时间,time=0时关闭,time=1时一直响,time>=10,延迟xx毫秒后自动关闭。

在app_main里调用Beep_Init函数初始化蜂鸣器,并在循环中(每1000毫秒)设置蜂鸣器鸣笛500毫秒后自动关闭。

 

四、编译下载烧录固件

使用Type-C数据线连接虚拟机/电脑与microROS控制板,如果系统弹窗选择连接到虚拟机上。

激活ESP-IDF开发环境,注意每次打开新终端都需要先激活ESP-IDF开发环境才可以编译固件。

进入项目目录

编译、烧录、打开串口模拟器

如果需要退出串口模拟器,请按Ctrl+]。

 

五、实验效果

串口模拟器打印"hello yahboom"欢迎词,此时我们可以听到蜂鸣每间隔500毫秒响一声。

image-20240110152009958