3386

帖子

0

TA的资源

五彩晶圆(中级)

21
 

 【花雕动手做】音乐可视化系列小项目(06)---点阵频谱灯

   项目之十六段音乐可视化动态频谱仪(使用FFT算法)

 

   实验视频剪辑

 

https://v.youku.com/v_show/id_XNTgxMjkxMjkxNg==.html?firsttime=0

 


 

 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

22
 

   实验场景动态图

 

 

 
 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

23
 

  【花雕动手做】音乐可视化系列小项目(06)---点阵频谱灯

   项目之三:arduinoFFT浮点频谱灯

 

   实验开源代码

 

  • /*
  • 【花雕动手做】音乐可视化系列小项目(06)---点阵频谱灯
  • 项目之三:arduinoFFT浮点频谱灯
  • */
  • #include <arduinoFFT.h>
  • #include <MD_MAX72xx.h>
  • #include <SPI.h>
  • #define SAMPLES 64
  • #define HARDWARE_TYPE MD_MAX72XX::FC16_HW
  • #define MAX_DEVICES 4
  • #define CLK_PIN 13
  • #define DATA_PIN 11
  • #define CS_PIN 10
  • #define xres 32
  • #define yres 8
  • int MY_ARRAY[]={0, 128, 192, 224, 240, 248, 252, 254, 255};
  • int MY_MODE_1[]={0, 128, 192, 224, 240, 248, 252, 254, 255};
  • int MY_MODE_2[]={0, 128, 64, 32, 16, 8, 4, 2, 1};
  • int MY_MODE_3[]={0, 128, 192, 160, 144, 136, 132, 130, 129};
  • int MY_MODE_4[]={0, 128, 192, 160, 208, 232, 244, 250, 253};
  • int MY_MODE_5[]={0, 1, 3, 7, 15, 31, 63, 127, 255};
  • double vReal[SAMPLES];
  • double vImag[SAMPLES];
  • char data_avgs[xres];
  • int yvalue;
  • int displaycolumn , displayvalue;
  • int peaks[xres];
  • const int buttonPin = 2;
  • int state = HIGH;
  • int previousState = LOW;
  • int displaymode = 1;
  • unsigned long lastDebounceTime = 0;
  • unsigned long debounceDelay = 50;
  • MD_MAX72XX mx = MD_MAX72XX(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
  • arduinoFFT FFT = arduinoFFT();
  • void setup() {
  • ADCSRA = 0b11100101;
  • ADMUX = 0b00000000;
  • pinMode(buttonPin, INPUT);
  • mx.begin();
  • delay(50);
  • }
  • void loop() {
  • // ++ Sampling
  • for(int i=0; i<SAMPLES; i++)
  • {
  • while(!(ADCSRA & 0x10));
  • ADCSRA = 0b11110101 ;
  • int value = ADC - 512 ;
  • vReal[i]= value/8;
  • vImag[i] = 0;
  • }
  • FFT.Windowing(vReal, SAMPLES, FFT_WIN_TYP_HAMMING, FFT_FORWARD);
  • FFT.Compute(vReal, vImag, SAMPLES, FFT_FORWARD);
  • FFT.ComplexToMagnitude(vReal, vImag, SAMPLES);
  • int step = (SAMPLES/2)/xres;
  • int c=0;
  • for(int i=0; i<(SAMPLES/2); i+=step)
  • {
  • data_avgs[c] = 0;
  • for (int k=0 ; k< step ; k++) {
  • data_avgs[c] = data_avgs[c] + vReal[i+k];
  • }
  • data_avgs[c] = data_avgs[c]/step;
  • c++;
  • }
  • for(int i=0; i<xres; i++)
  • {
  • data_avgs[i] = constrain(data_avgs[i],0,80);
  • data_avgs[i] = map(data_avgs[i], 0, 80, 0, yres);
  • yvalue=data_avgs[i];
  • peaks[i] = peaks[i]-1;
  • if (yvalue > peaks[i])
  • peaks[i] = yvalue ;
  • yvalue = peaks[i];
  • displayvalue=MY_ARRAY[yvalue];
  • displaycolumn=15-i;
  • mx.setColumn(displaycolumn, displayvalue);
  • }
  • displayModeChange ();
  • }
  • void displayModeChange() {
  • int reading = digitalRead(buttonPin);
  • if (reading == HIGH && previousState == LOW && millis() - lastDebounceTime > debounceDelay)
  • {
  • switch (displaymode) {
  • case 1:
  • displaymode = 2;
  • for (int i=0 ; i<=8 ; i++ ) {
  • MY_ARRAY[i]=MY_MODE_2[i];
  • }
  • break;
  • case 2:
  • displaymode = 3;
  • for (int i=0 ; i<=8 ; i++ ) {
  • MY_ARRAY[i]=MY_MODE_3[i];
  • }
  • break;
  • case 3:
  • displaymode = 4;
  • for (int i=0 ; i<=8 ; i++ ) {
  • MY_ARRAY[i]=MY_MODE_4[i];
  • }
  • break;
  • case 4:
  • displaymode = 5;
  • for (int i=0 ; i<=8 ; i++ ) {
  • MY_ARRAY[i]=MY_MODE_5[i];
  • }
  • break;
  • case 5:
  • displaymode = 1;
  • for (int i=0 ; i<=8 ; i++ ) {
  • MY_ARRAY[i]=MY_MODE_1[i];
  • }
  • break;
  • }
  • lastDebounceTime = millis();
  • }
  • previousState = reading;
  • }

 

 
 
 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

24
 

  【花雕动手做】音乐可视化系列小项目(06)---点阵频谱灯

   项目之三:arduinoFFT浮点频谱灯

 

   实验视频剪辑

 

https://v.youku.com/v_show/id_XNTgxMjk4ODQyMA==.html?firsttime=0

 


 

 

 

 
 
 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

25
 

  【花雕动手做】音乐可视化系列小项目(06)---点阵频谱灯

   项目之三:arduinoFFT浮点频谱灯

 

   实验场景动态图

 

 
 
 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

26
 

  【花雕动手做】音乐可视化系列小项目(06)---点阵频谱灯

   十六段arduinoFFT浮点频谱灯

 

   实验视频剪辑

 

https://v.youku.com/v_show/id_XNTgxMzAwMzEyOA==.html?firsttime=0

 


 

 
 
 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

27
 

  【花雕动手做】音乐可视化系列小项目(06)---点阵频谱灯
   十六段arduinoFFT浮点频谱灯

   实验场景动态图

 

 
 
 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

28
 

  【花雕动手做】音乐可视化系列小项目(06)---点阵频谱灯

   十六段arduinoFFT高速频谱灯

 

   实验视频剪辑

 

https://v.youku.com/v_show/id_XNTgxMzAxMzcxMg==.html?firsttime=0

 


 

 
 
 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

29
 

  【花雕动手做】音乐可视化系列小项目(06)---点阵频谱灯

   十六段arduinoFFT高速频谱灯

 

   实验场景动态图

 

 
 
 

回复

1万

帖子

24

TA的资源

版主

30
 

和老外这个对比一下

 

 

https://learn.adafruit.com/mini-led-matrix-audio-visualizer

点评

谢谢老师,查到老外这块13x9 IS31FL3741 LED 矩阵屏幕了,15美元,国内还没有(淘宝上没搜到)   [attachimg]567633[/attachimg] 与常规的 8x8 DotStar 网格不同,这些不是 NeoPixel 或 DotStar 或其他&  详情 回复 发表于 2021-10-17 11:25
 
 
 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

31
 
dcexpert 发表于 2021-10-16 20:00 和老外这个对比一下     https://learn.adafruit.com/mini-led-matrix-audio-visua ...

谢谢老师,查到老外这块13x9 IS31FL3741 LED 矩阵屏幕了,15美元,国内还没有(淘宝上没搜到)

 

与常规的 8x8 DotStar 网格不同,这些不是 NeoPixel 或 DotStar 或其他“智能”RGB LED。不是在每个 LED 中都有一个小芯片,而是一个大型控制器芯片,可以为您处理所有 PWM。ISSI IS32FL3741 通过 I2C 进行通信,并且可以使用 8 位 PWM 设置每个 LED 元件,以获得 RGB 元件的 24 位颜色,以获得美丽的色彩!有一个可调节的电流驱动器,因此您可以在不损失色彩分辨率的情况下使整个显示器变亮或变暗。

 
 
 

回复

18

帖子

1

TA的资源

一粒金砂(中级)

32
 
厉害,啥都有,楼主家有个百宝箱。arduino开发板功能超级强大

点评

谢谢老师的鼓励,最近在学习墨水屏......  详情 回复 发表于 2021-11-18 08:52
 
 
 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

33
 
yulei2633 发表于 2021-11-17 09:18 厉害,啥都有,楼主家有个百宝箱。arduino开发板功能超级强大

谢谢老师的鼓励,最近在学习墨水屏......

 

 
 
 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

34
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

35
 

学习了 感谢楼主 THXTHXTHXTHX

THXTHXTHXTHXTHXTHXTHXTHX

点评

谢谢你的支持与鼓励    详情 回复 发表于 2021-11-30 09:07
 
 
 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

36
 
pokmnjikm 发表于 2021-11-25 22:44 学习了 感谢楼主 THXTHXTHXTHX THXTHXTHXTHXTHXTHXTHXTHX

谢谢你的支持与鼓励

 

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条
电源解决方案和技术 | DigiKey 应用探索站
当月好物、电源技术资源、特色活动、DigiKey在线实用工具,干货多多~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表