也可以考虑采用现成的64X32的led显示屏模板(这个省事),用8S103或者32f103驱动.

点赞  2021-11-21 05:50
引用: soso 发表于 2021-11-20 21:45 趣味性很强:)

谢谢老师的鼓励

点赞  2021-11-22 06:00
book1 发表于 2021-11-21 05:50 也可以考虑采用现成的64X32的led显示屏模板(这个省事),用8S103或者32f103驱动.

谢谢老师的鼓励,在做声音可视化的系列尝试,先从简单的开始学习,准备各种执行显示器都试一下。

 

这个系列,后面还打算继续学习和做实验的,主要有:

ws2812硬质像素屏3种规格,

F3.75和F5.0LED点阵双色显示屏模板,2-3种规格,

ws2812b灯带,拼接大些规格的显示屏,想做3-4种不同款式,

全彩LED显示屏模板,目前已收集了P2,5\P4\P5\P6\P10等。

点赞  2021-11-22 06:22

   实验场景图

 

用杜邦线引出D2管脚,作为触摸开关,可以转换五种显示频谱的模式,后面还有三种

 

01.jpg

点赞  2021-11-22 06:49

  【花雕动手做】有趣好玩的音乐可视化系列小项目(08)---四位32段点阵屏

   项目之二:多档arduinoFFT浮点32段频谱仪

 

   实验视频剪辑 3

 

https://v.youku.com/v_show/id_XNTgyMTQ2NDIzMg==.html?spm=a2hcb.playlsit.page.1

 


 

点赞  2021-11-22 07:03

   实验场景动态图

 

120.gif

点赞  2021-11-22 07:12

  【花雕动手做】有趣好玩的音乐可视化系列小项目(08)---四位32段点阵屏

   项目之二:多档arduinoFFT浮点32段频谱仪

 

   实验视频剪辑 4

 

https://v.youku.com/v_show/id_XNTgyMTc5OTQ0MA==.html?spm=a2hcb.playlsit.page.3

 


 

点赞  2021-11-22 07:16

   实验场景动态图

 

121.gif

点赞  2021-11-22 07:22

  【花雕动手做】有趣好玩的音乐可视化系列小项目(08)---四位32段点阵屏

   项目之二:多档arduinoFFT浮点32段频谱仪

 

   实验视频剪辑 5

 

https://v.youku.com/v_show/id_XNTgyMTM5MTA1Mg==.html?spm=a2hcb.playlsit.page.5

 


 

点赞  2021-11-22 07:28

   实验场景动态图

 

122.gif

点赞  2021-11-22 07:39

  【花雕动手做】有趣好玩的音乐可视化系列小项目(08)---四位32段点阵屏

   项目之二:多档arduinoFFT浮点32段频谱仪

 

   实验视频剪辑 6

 

https://v.youku.com/v_show/id_XNTgyMTY3NTQwNA==.html?spm=a2hcb.playlsit.page.1

 


 

 

本帖最后由 eagler8 于 2021-11-22 11:09 编辑
点赞  2021-11-22 10:56

   实验场景动态图

 

123.gif

点赞  2021-11-22 11:15

  【花雕动手做】有趣好玩的音乐可视化系列小项目(08)---四位32段点阵屏

   项目之二:多档arduinoFFT浮点32段频谱仪

 

   实验视频剪辑 7

 

https://v.youku.com/v_show/id_XNTgyMjA0MTI1Mg==.html?spm=a2hcb.playlsit.page.1

 


 

点赞  2021-11-22 11:37

 

   实验场景动态图7 

 

124.gif

点赞  2021-11-22 11:53

  【花雕动手做】有趣好玩的音乐可视化系列小项目(08)---四位32段点阵屏

   项目之二:多档arduinoFFT浮点32段频谱仪

 

   实验视频剪辑 8

 

https://v.youku.com/v_show/id_XNTgyMjA0MTM2MA==.html?spm=a2hcb.playlsit.page.1

 


 

点赞  2021-11-22 12:01

   实验场景动态图 8 

 

125.gif

点赞  2021-11-22 12:09

 【花雕动手做】有趣好玩的音乐可视化系列小项目(08)---四位32段点阵屏

   项目之三:红绿色32段级联频谱点阵屏灯(FFT算法)

   

   实验开源代码

 

/*
  【花雕动手做】有趣好玩的音乐可视化系列小项目(08)---四位32段点阵屏
  项目之三:红绿色32段级联频谱点阵屏灯(FFT算法)
  接脚连线:MAX9814 接A0
  MAX7219 UNO
  VCC →→→→→ 5V
  GND →→→→→ GND
  DIN →→→→→ D11(数据,数据接收引脚)
  CS →→→→→ D10(负载,命令接收引脚)
  CLK →→→→→ D13(时钟,时钟引脚)
*/

#include <arduinoFFT.h>

#include <MD_MAX72xx.h>

#include <SPI.h>

MD_MAX72XX disp = MD_MAX72XX(MD_MAX72XX::FC16_HW, 10, 1);

arduinoFFT FFT = arduinoFFT();

double realComponent[64];

double imagComponent[64];

int spectralHeight[] = {0b00000000, 0b10000000, 0b11000000,

                        0b11100000, 0b11110000, 0b11111000,

                        0b11111100, 0b11111110, 0b11111111
                       };

int index, c, value;

void setup()

{

  disp.begin();

  Serial.begin(9600);

}

void loop()

{

  int sensitivity = map(analogRead(A0), 0, 1023, 50, 100);

  Serial.println (analogRead(A0));

  for (int i = 0; i < 64; i++)

  {

    realComponent[i] = analogRead(A7) / sensitivity;

    imagComponent[i] = 0;

  }

  FFT.Windowing(realComponent, 64, FFT_WIN_TYP_HAMMING, FFT_FORWARD);

  FFT.Compute(realComponent, imagComponent, 64, FFT_FORWARD);

  FFT.ComplexToMagnitude(realComponent, imagComponent, 64);

  for (int i = 0; i < 32; i++)

  {

    realComponent[i] = constrain(realComponent[i], 0, 80);

    realComponent[i] = map(realComponent[i], 0, 80, 0, 8);

    index = realComponent[i];

    value = spectralHeight[index];

    c = 31 - i;

    disp.setColumn(c, value);

  }

}

 

点赞  2021-11-22 12:13

 【花雕动手做】有趣好玩的音乐可视化系列小项目(08)---四位32段点阵屏

   项目之三:红绿色32段级联频谱点阵屏灯(FFT算法)

 

   实验视频剪辑 1

 

https://v.youku.com/v_show/id_XNTgyMjA0Mjg0NA==.html?spm=a2hcb.playlsit.page.3

 


 

点赞  2021-11-22 12:56

   实验场景动态图

 

126.gif

点赞  2021-11-22 13:29

 【花雕动手做】有趣好玩的音乐可视化系列小项目(08)---四位32段点阵屏

   项目之三:红绿色32段级联频谱点阵屏灯(FFT算法)

 

   实验视频剪辑 2

 

https://v.youku.com/v_show/id_XNTgyMTc1NTk2OA==.html?spm=a2hcb.playlsit.page.1

 


 

点赞  2021-11-22 14:22
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复