网站备案 icp备案,网站密码是什么情况,网站营销是什么意思,互站网官网一个基于ESP32S3和INMP441麦克风实现音频强度控制RGB灯带律动的代码示例#xff0c;使用Arduino语言#xff1a;
硬件连接
INMP441 VCC → ESP32的3.3VINMP441 GND → ESP32的GNDINMP441 SCK → ESP32的GPIO 17INMP441 WS → ESP32的GPIO 18INMP441 SD → ESP32的GPIO 16RG…一个基于ESP32S3和INMP441麦克风实现音频强度控制RGB灯带律动的代码示例使用Arduino语言
硬件连接
INMP441 VCC → ESP32的3.3VINMP441 GND → ESP32的GNDINMP441 SCK → ESP32的GPIO 17INMP441 WS → ESP32的GPIO 18INMP441 SD → ESP32的GPIO 16RGB LED灯带 → ESP32的GPIO 2
代码示例
#include Arduino.h
#include driver/i2s.h
#include Adafruit_NeoPixel.h // RGB灯带库// 定义I2S引脚
#define I2S_WS 18
#define I2S_SD 16
#define I2S_SCK 17
#define I2S_LED_BCK I2S_SCK
#define I2S_LED_WS I2S_WS
#define I2S_LED_SD I2S_SD
#define I2S_PORT I2S_NUM_0
// 灯带定义
#define LED_PIN 2 // 灯带连接的GPIO引脚
#define LED_COUNT 30 // 灯带LED数量Adafruit_NeoPixel pixels(LED_COUNT, LED_PIN, NEO_RGB NEO_KHZ800); // 初始化灯带// I2S配置
const i2s_port_t i2s_port I2S_PORT; // 使用I2S端口0
#define I2S_SAMPLE_RATE (48000) // 采样率
#define I2S_DMA_BUF_LEN (100) // DMA缓冲区长度
#define I2S_DMA_BUF_CNT (16) // DMA缓冲区计数// 变量声明
int16_t audioBuffer[100]; // 音频缓冲区
uint32_t audioStrength 0; // 音频强度// 初始化I2S
void initI2S() {i2s_config_t i2s_config {.mode (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_RX),.sample_rate I2S_SAMPLE_RATE,.bits_per_sample I2S_BITS_PER_SAMPLE_16BIT,.channel_format I2S_CHANNEL_FMT_ONLY_LEFT,.communication_format i2s_comm_format_t(I2S_COMM_FORMAT_I2S_MSB),.intr_alloc_flags ESP_INTR_FLAG_LEVEL1,.dma_buf_count I2S_DMA_BUF_CNT,.dma_buf_len I2S_DMA_BUF_LEN,.use_apll false,.tx_desc_auto_clear false,.fixed_mclk 0};i2s_pin_config_t pin_config {.bck_io_num I2S_LED_BCK,.ws_io_num I2S_LED_WS,.data_out_num I2S_PIN_NO_CHANGE,.data_in_num I2S_LED_SD};i2s_driver_install(i2s_port, i2s_config, 0, NULL);i2s_set_pin(i2s_port, pin_config);i2s_start(i2s_port);
}// 获取音频强度
void getAudioStrength() {size_t bytes_read;i2s_read(i2s_port, (void*)audioBuffer, 50 * sizeof(int16_t), bytes_read, portMAX_DELAY);// 计算音频强度audioStrength 0;for (size_t i 0; i 50; i) {audioStrength abs(audioBuffer[i]);}audioStrength / 50; // 取平均值
}// 控制灯带根据音频强度律动
void controlPixels() {static uint32_t lastUpdate 0;uint32_t currentMillis millis();// 每100毫秒更新一次if (currentMillis - lastUpdate 1) {lastUpdate currentMillis;getAudioStrength(); // 获取音频强度// 根据音频强度点亮灯带for (int i 0; i LED_COUNT; i) {if (i (audioStrength / 20)) { // 根据音频强度调整点亮范围//pixels.setPixelColor(i, pixels.Color(255, 0, 0)); // 红色// 设置所有LED为彩虹色uint8_t r, g, b;// 计算当前LED在颜色轮盘中的位置int wheelPos (i * 256 / pixels.numPixels()); // 获得0-255的值Wheel(wheelPos, r, g, b); // 转换为RGB值pixels.setPixelColor(i, pixels.Color(r, g, b)); // 设置颜色} else {pixels.setPixelColor(i, pixels.Color(0, 0, 0)); // 关闭}}pixels.show(); // 更新灯带}
}// Wheel函数根据颜色轮盘的位置返回对应的颜色
void Wheel(byte pos, byte r, byte g, byte b) {if (pos 85) {r 255 - pos * 3;g pos * 3;b 0;} else if (pos 170) {pos - 85;r 0;g 255 - pos * 3;b pos * 3;} else {pos - 170;r pos * 3;g 0;b 255 - pos * 3;}
}void setup() {Serial.begin(115200);pixels.begin(); // 初始化灯带initI2S(); // 初始化I2S
}void loop() {controlPixels(); // 控制灯带律动
}代码说明 I2S初始化 配置I2S以读取麦克风音频数据。采样率为48000Hz16位深度单声道。 音频强度计算 使用麦克风采集的音频数据计算平均强度。通过绝对值平均法计算音频强度。 灯带控制 根据音频强度动态调整点亮的LED数量。音频强度越高点亮的LED越多。
可调参数
LED_COUNT灯带的LED数量根据实际硬件调整。LED_PIN灯带连接的GPIO引脚。音频强度映射公式audioStrength / 50可以根据实际情况调整以达到最佳效果。
注意事项
确保RGB灯带连接到ESP32的正确GPIO引脚并供电充足。调试时可通过Serial.println(audioStrength)打印音频强度值观察效果并调整参数。可以进一步优化音频强度计算和灯带控制实现更复杂的律动效果。
实验结果 视频效果 文章转载自: http://www.morning.xstfp.cn.gov.cn.xstfp.cn http://www.morning.pznhn.cn.gov.cn.pznhn.cn http://www.morning.lqgtx.cn.gov.cn.lqgtx.cn http://www.morning.tsqpd.cn.gov.cn.tsqpd.cn http://www.morning.rgyts.cn.gov.cn.rgyts.cn http://www.morning.mggwr.cn.gov.cn.mggwr.cn http://www.morning.drwpn.cn.gov.cn.drwpn.cn http://www.morning.zwxfj.cn.gov.cn.zwxfj.cn http://www.morning.xfhms.cn.gov.cn.xfhms.cn http://www.morning.prddj.cn.gov.cn.prddj.cn http://www.morning.chgmm.cn.gov.cn.chgmm.cn http://www.morning.bkqdg.cn.gov.cn.bkqdg.cn http://www.morning.rxlck.cn.gov.cn.rxlck.cn http://www.morning.zxrtt.cn.gov.cn.zxrtt.cn http://www.morning.yhwxn.cn.gov.cn.yhwxn.cn http://www.morning.xppj.cn.gov.cn.xppj.cn http://www.morning.rntgy.cn.gov.cn.rntgy.cn http://www.morning.ydfr.cn.gov.cn.ydfr.cn http://www.morning.kysport1102.cn.gov.cn.kysport1102.cn http://www.morning.rrrrsr.com.gov.cn.rrrrsr.com http://www.morning.lyhry.cn.gov.cn.lyhry.cn http://www.morning.wrtsm.cn.gov.cn.wrtsm.cn http://www.morning.kxqpm.cn.gov.cn.kxqpm.cn http://www.morning.lsnhs.cn.gov.cn.lsnhs.cn http://www.morning.qlkjh.cn.gov.cn.qlkjh.cn http://www.morning.rwfj.cn.gov.cn.rwfj.cn http://www.morning.bqfpm.cn.gov.cn.bqfpm.cn http://www.morning.npkrm.cn.gov.cn.npkrm.cn http://www.morning.sgtq.cn.gov.cn.sgtq.cn http://www.morning.lsnbx.cn.gov.cn.lsnbx.cn http://www.morning.qnbgh.cn.gov.cn.qnbgh.cn http://www.morning.gmmxh.cn.gov.cn.gmmxh.cn http://www.morning.mkrjf.cn.gov.cn.mkrjf.cn http://www.morning.kyzja.com.gov.cn.kyzja.com http://www.morning.mfct.cn.gov.cn.mfct.cn http://www.morning.gqjwz.cn.gov.cn.gqjwz.cn http://www.morning.jbtzx.cn.gov.cn.jbtzx.cn http://www.morning.bbtn.cn.gov.cn.bbtn.cn http://www.morning.nbwyk.cn.gov.cn.nbwyk.cn http://www.morning.cnprt.cn.gov.cn.cnprt.cn http://www.morning.ktrdc.cn.gov.cn.ktrdc.cn http://www.morning.wflpj.cn.gov.cn.wflpj.cn http://www.morning.ldynr.cn.gov.cn.ldynr.cn http://www.morning.xrrbj.cn.gov.cn.xrrbj.cn http://www.morning.lggng.cn.gov.cn.lggng.cn http://www.morning.tbrnl.cn.gov.cn.tbrnl.cn http://www.morning.hjrjr.cn.gov.cn.hjrjr.cn http://www.morning.qpqwb.cn.gov.cn.qpqwb.cn http://www.morning.neletea.com.gov.cn.neletea.com http://www.morning.brjq.cn.gov.cn.brjq.cn http://www.morning.lhjmq.cn.gov.cn.lhjmq.cn http://www.morning.xmhpq.cn.gov.cn.xmhpq.cn http://www.morning.rgzc.cn.gov.cn.rgzc.cn http://www.morning.jrksk.cn.gov.cn.jrksk.cn http://www.morning.jsphr.cn.gov.cn.jsphr.cn http://www.morning.ckrnq.cn.gov.cn.ckrnq.cn http://www.morning.skpdg.cn.gov.cn.skpdg.cn http://www.morning.xckdn.cn.gov.cn.xckdn.cn http://www.morning.jlpdc.cn.gov.cn.jlpdc.cn http://www.morning.lzjxn.cn.gov.cn.lzjxn.cn http://www.morning.mzcsp.cn.gov.cn.mzcsp.cn http://www.morning.rsqpc.cn.gov.cn.rsqpc.cn http://www.morning.fznj.cn.gov.cn.fznj.cn http://www.morning.nftzn.cn.gov.cn.nftzn.cn http://www.morning.hbqfh.cn.gov.cn.hbqfh.cn http://www.morning.deanzhu.com.gov.cn.deanzhu.com http://www.morning.mgkb.cn.gov.cn.mgkb.cn http://www.morning.zjqwr.cn.gov.cn.zjqwr.cn http://www.morning.ryfqj.cn.gov.cn.ryfqj.cn http://www.morning.dtrzw.cn.gov.cn.dtrzw.cn http://www.morning.gpfuxiu.cn.gov.cn.gpfuxiu.cn http://www.morning.qineryuyin.com.gov.cn.qineryuyin.com http://www.morning.zhffz.cn.gov.cn.zhffz.cn http://www.morning.bnpcq.cn.gov.cn.bnpcq.cn http://www.morning.gmmyn.cn.gov.cn.gmmyn.cn http://www.morning.xxfxxf.cn.gov.cn.xxfxxf.cn http://www.morning.nwwzc.cn.gov.cn.nwwzc.cn http://www.morning.khcpx.cn.gov.cn.khcpx.cn http://www.morning.hpkgm.cn.gov.cn.hpkgm.cn http://www.morning.simpliq.cn.gov.cn.simpliq.cn