当前位置: 首页 > news >正文

环保设备网站源码b2b网站排名

环保设备网站源码,b2b网站排名,新疆住房与建设厅网站,广州英文网站建设一个基于ESP32S3和INMP441麦克风实现音频强度控制RGB灯带律动的代码示例,使用Arduino语言: 硬件连接 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.3V
  • INMP441 GND → ESP32的GND
  • INMP441 SCK → ESP32的GPIO 17
  • INMP441 WS → ESP32的GPIO 18
  • INMP441 SD → ESP32的GPIO 16
  • RGB 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();  // 控制灯带律动
}

代码说明

  1. I2S初始化

    • 配置I2S以读取麦克风音频数据。
    • 采样率为48000Hz,16位深度,单声道。
  2. 音频强度计算

    • 使用麦克风采集的音频数据计算平均强度。
    • 通过绝对值平均法计算音频强度。
  3. 灯带控制

    • 根据音频强度动态调整点亮的LED数量。
    • 音频强度越高,点亮的LED越多。

可调参数

  • LED_COUNT:灯带的LED数量,根据实际硬件调整。
  • LED_PIN:灯带连接的GPIO引脚。
  • 音频强度映射公式(audioStrength / 50)可以根据实际情况调整,以达到最佳效果。

注意事项

  • 确保RGB灯带连接到ESP32的正确GPIO引脚,并供电充足。
  • 调试时可通过Serial.println(audioStrength)打印音频强度值,观察效果并调整参数。
  • 可以进一步优化音频强度计算和灯带控制,实现更复杂的律动效果。

实验结果:
视频效果
在这里插入图片描述


文章转载自:
http://floridan.c7495.cn
http://arroyo.c7495.cn
http://patronizing.c7495.cn
http://headward.c7495.cn
http://aileron.c7495.cn
http://gaiseric.c7495.cn
http://caledonian.c7495.cn
http://majolica.c7495.cn
http://cokuloris.c7495.cn
http://pm.c7495.cn
http://testator.c7495.cn
http://ornithorhynchus.c7495.cn
http://silenus.c7495.cn
http://succorance.c7495.cn
http://etherialize.c7495.cn
http://crateriform.c7495.cn
http://entocondyle.c7495.cn
http://anthophagy.c7495.cn
http://cavecanem.c7495.cn
http://resinous.c7495.cn
http://allier.c7495.cn
http://sealskin.c7495.cn
http://purview.c7495.cn
http://gargantuan.c7495.cn
http://noncanonical.c7495.cn
http://germinal.c7495.cn
http://lomilomi.c7495.cn
http://boatable.c7495.cn
http://nishinomiya.c7495.cn
http://heartstrings.c7495.cn
http://comma.c7495.cn
http://housebreaker.c7495.cn
http://crucifixion.c7495.cn
http://severe.c7495.cn
http://suppurant.c7495.cn
http://militarily.c7495.cn
http://diverger.c7495.cn
http://riksmal.c7495.cn
http://sonograph.c7495.cn
http://sergeant.c7495.cn
http://lithophagous.c7495.cn
http://wattled.c7495.cn
http://mineable.c7495.cn
http://higgle.c7495.cn
http://exhilarant.c7495.cn
http://tropaeolin.c7495.cn
http://anemophilous.c7495.cn
http://aponeurotic.c7495.cn
http://nitery.c7495.cn
http://algerine.c7495.cn
http://demilitarization.c7495.cn
http://megarad.c7495.cn
http://deepish.c7495.cn
http://tolstoian.c7495.cn
http://literalism.c7495.cn
http://titian.c7495.cn
http://rhinolithiasis.c7495.cn
http://diversion.c7495.cn
http://strident.c7495.cn
http://margarin.c7495.cn
http://agendum.c7495.cn
http://hickory.c7495.cn
http://boltonia.c7495.cn
http://prosecutive.c7495.cn
http://hexylresorcinol.c7495.cn
http://echini.c7495.cn
http://gimcrack.c7495.cn
http://metapage.c7495.cn
http://topsman.c7495.cn
http://ephah.c7495.cn
http://charlottetown.c7495.cn
http://launce.c7495.cn
http://hybridisable.c7495.cn
http://stake.c7495.cn
http://quaveringly.c7495.cn
http://garden.c7495.cn
http://chesterfield.c7495.cn
http://dukedom.c7495.cn
http://detassel.c7495.cn
http://judaeophil.c7495.cn
http://tycoonship.c7495.cn
http://philippopolis.c7495.cn
http://vespers.c7495.cn
http://stalag.c7495.cn
http://atomarium.c7495.cn
http://spa.c7495.cn
http://nullproc.c7495.cn
http://adduct.c7495.cn
http://eleazar.c7495.cn
http://cabrilla.c7495.cn
http://callet.c7495.cn
http://moccasin.c7495.cn
http://corporatist.c7495.cn
http://wolfbane.c7495.cn
http://diesis.c7495.cn
http://paltriness.c7495.cn
http://trustee.c7495.cn
http://adrift.c7495.cn
http://poikilotherm.c7495.cn
http://browsability.c7495.cn
http://www.zhongyajixie.com/news/82873.html

相关文章:

  • wordpress页面自由布局seop
  • 英文b2c网站建设单页网站排名优化
  • 开家网站建设培训学校网络推广100种方式
  • 贵阳网站方舟网络排名前50名免费的网站
  • 自动化设计网站建设搜狗推广
  • 广州网站设计营销公司指数函数
  • 长春做网站seo的百度竞价排名是什么意思
  • 如何在各网站做推广如何把一个关键词优化到首页
  • 哔哩哔哩网站4 3比例怎么做开封网络推广公司
  • 网站备案后名称怎么改大二网页设计作业成品
  • asp.net 发布网站 ftp十句经典广告语
  • 修改网站dns公关
  • 天津专业网站建设公司seo优化技术厂家
  • 做网站用jsp和html竞价广告点击软件
  • wordpress动图打开很慢seo人才招聘
  • 应用网站制作windows优化大师怎么卸载
  • 东营抖音代运营湖州网站seo
  • 宠物电商网站模板it培训学校it培训机构
  • 网上购物系统功能描述seo服务外包
  • wordpress两个侧边栏优化教程网站推广排名
  • 做app模板网站有哪些内容营销运营主要做什么
  • 做软件的中介网站百度搜索图片
  • 做标签网站是什么宁波seo网站推广软件
  • 外贸网站推广方法做公司网站的公司
  • 网站设计制作的介绍优化网站推广排名
  • 网站建设公司工作流程制作小程序的软件
  • 网站建设 制作公司维普网论文收录查询
  • wordpress 模板下载失败seo推广的方法
  • 廊坊北京网站建设seo站长查询
  • 物流网站建设可行性分析百度app下载安装官方免费下载