这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » Grove Creator Kit开发指南【音量调节旋钮】

共1条 1/1 1 跳转至

Grove Creator Kit开发指南【音量调节旋钮】

菜鸟
2026-08-24 21:28:00     打赏

一、硬件介绍

1、主控开发板

使用的是XIAO ESP32S3开发板,集成ESP32S3 32位双核处理器芯片,最高运行频率240MHz,板载8MB PSRAM和8MB FLASH

1787576271514383.png


功能引脚示意图

1787576305327340.png


2、Grove Creator Kit 器件

在本次开发中,使用到的 `Grove Creator Kit 套件` 中的器件如下:

Grove - Buzzer 有源蜂鸣器

> Grove - 蜂鸣器模块的主要组件是一个压电蜂鸣器压;

> 压电蜂鸣器可以连接到数字输出,当输出为高电平时会发出音调

image-20260820212950973.png


主要特性

image.png


Grove - Rotary Angle Sensor 旋转角度传感器

> 旋转角度传感器在其D1连接器上产生0到VCC之间的模拟输出;

> 角度范围为300度,值呈线性变化,电阻值为10k欧姆;

image-20260820212909289.png



主要特性

image.png



二、功能实现

1、硬件搭建

将旋转角度传感器、蜂鸣器模块,分别通过Grove接口连接到开发板对应的引脚上;

image.png


实物搭建效果:

image.png


2、功能效果

通过蜂鸣器播放谐振频率(2300Hz)声音,并且通过旋转传感器旋钮,读取当前传感器的ADC数值,并换算出对应旋转角度所对应蜂鸣器音量的大小,从而实现音量调节;

> 串口打印输出当前旋钮角度(0~ 300)和音量的大小(0~ 255)数值;



三、代码编写

主要相关代码

#define ANGLE_SENSOR A8  
#define Buzzer D5        

#define ADC_REF 3.3
#define GROVE_VCC 3.3
#define FULL_ANGLE 300

#define PWM_FREQ 2300   // 蜂鸣器谐振频率
#define PWM_RES 8


void setup()
{
  Serial.begin(115200);
  pinMode(ANGLE_SENSOR, INPUT);

  //固定2300Hz
  ledcAttach(Buzzer, PWM_FREQ, PWM_RES);
}

void loop()
{
  int sensor_value = analogRead(ANGLE_SENSOR);
  float voltage = (float)sensor_value * ADC_REF / 4095.0f;
  float degrees = (voltage * FULL_ANGLE) / GROVE_VCC;

  //角度映射音量 
  int volume = map(degrees, 0, FULL_ANGLE, 0, 255);
  volume = constrain(volume, 0, 255);
  ledcWrite(Buzzer, volume);

  Serial.print("角度:");
  Serial.print(degrees);
  Serial.print(" °    音量大小:");
  Serial.println(volume);
  Serial.println("----------------");

  delay(100);
}



四、程序烧录

1、连接USB数据线至开发板;

2、选择端口号对应的开发板;

3、点击 `上传` 烧录程序到开发板上;

image-20260818173949849.png



五、效果演示


2.gif





共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]