2299浏览
楼主: 驴友花雕

[项目] 【花雕动手做】看见声音,基于Arduino系列音乐可视器(11)

[复制链接]

驴友花雕  中级技神
 楼主|

发表于 2022-7-20 14:42:02

  【花雕动手做】有趣好玩的音乐可视化项目(11)---WS2812幻彩LED灯带
  实验程序四:MegunoLink音乐反应式24颗LED灯带

  1. /*
  2.   【花雕动手做】有趣好玩的音乐可视化项目(11)---WS2812幻彩LED灯带
  3.   实验程序四:MegunoLink音乐反应式24颗LED灯带
  4. */
  5. #include<FastLED.h>
  6. #include<MegunoLink.h>
  7. #include<Filter.h>
  8. // define necessary parameters
  9. #define N_PIXELS  24
  10. #define MIC_PIN   A0
  11. #define LED_PIN   D6 // labeled "D6" on the board
  12. // the following parameters can be tweaked according to your audio levels
  13. #define NOISE 50
  14. #define TOP   (N_PIXELS+2) // allow the max level to be slightly off scale
  15. #define LED_TYPE  WS2811
  16. #define BRIGHTNESS  18     // a little dim for recording purposes
  17. #define COLOR_ORDER GRB
  18. // declare the LED array
  19. CRGB leds[N_PIXELS];
  20. // define the variables needed for the audio levels
  21. int lvl = 0, minLvl = 0, maxLvl = 600; // tweak the min and max as needed
  22. // instantiate the filter class for smoothing the raw audio signal
  23. ExponentialFilter<long> ADCFilter(5,0);
  24. void setup() {
  25.   // put your setup code here, to run once:
  26.   Serial.begin(115200);
  27.   // initialize the LED object
  28.   FastLED.addLeds<LED_TYPE,LED_PIN,COLOR_ORDER>(leds,N_PIXELS).setCorrection(TypicalLEDStrip);
  29.   FastLED.setBrightness(BRIGHTNESS);
  30. }
  31. void loop() {
  32.   // put your main code here, to run repeatedly:
  33.   // read the audio signal and filter it
  34.   int n, height;
  35.   n = analogRead(MIC_PIN);
  36.   // remove the MX9614 bias of 1.25VDC
  37.   n = abs(1023 - n);
  38.   // hard limit noise/hum
  39.   n = (n <= NOISE) ? 0 : abs(n - NOISE);
  40.   // apply the exponential filter to smooth the raw signal
  41.   ADCFilter.Filter(n);
  42.   lvl = ADCFilter.Current();
  43. //  // plot the raw versus filtered signals
  44. //  Serial.print(n);
  45. //  Serial.print(" ");
  46. //  Serial.println(lvl);
  47.   // calculate the number of pixels as a percentage of the range
  48.   // TO-DO: can be done dynamically by using a running average of min/max audio levels
  49.   height = TOP * (lvl - minLvl) / (long)(maxLvl - minLvl);
  50.   if(height < 0L) height = 0;
  51.   else if(height > TOP) height = TOP;
  52.   // turn the LEDs corresponding to the level on/off
  53.   for(uint8_t i = 0; i < N_PIXELS; i++) {
  54.     // turn off LEDs above the current level
  55.     if(i >= height) leds[i] = CRGB(0,0,0);
  56.     // otherwise, turn them on!
  57.     else leds[i] = Wheel( map( i, 0, N_PIXELS-1, 30, 150 ) );
  58.   }
  59.   FastLED.show();
  60. }
  61. CRGB Wheel(byte WheelPos) {
  62.   // return a color value based on an input value between 0 and 255
  63.   if(WheelPos < 85)
  64.     return CRGB(WheelPos * 3, 255 - WheelPos * 3, 0);
  65.   else if(WheelPos < 170) {
  66.     WheelPos -= 85;
  67.     return CRGB(255 - WheelPos * 3, 0, WheelPos * 3);
  68.   } else {
  69.     WheelPos -= 170;
  70.     return CRGB(0, WheelPos * 3, 255 - WheelPos * 3);
  71.   }
  72. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-7-20 14:56:59

实验场景图  动态图

动画39.gif

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-7-20 15:19:30

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-10-5 09:58:01

【花雕动手做】看见声音,基于Arduino系列音乐可视器(1)---LED节奏灯
https://mc.dfrobot.com.cn/thread-311167-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(2)---OLED频谱灯
https://mc.dfrobot.com.cn/thread-311174-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(3)---RGB律动灯
https://mc.dfrobot.com.cn/thread-311183-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(4)---WS2812条灯
https://mc.dfrobot.com.cn/thread-311190-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(5)---WS2812柱跳灯
https://mc.dfrobot.com.cn/thread-311192-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(6)---点阵频谱灯
https://mc.dfrobot.com.cn/thread-311201-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(7)---大方格频谱灯
https://mc.dfrobot.com.cn/thread-311364-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(8)---四位32段点阵屏
https://mc.dfrobot.com.cn/thread-311490-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(9)---X Music Spectrum
https://mc.dfrobot.com.cn/thread-311627-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(10)---WS2812硬板屏
https://mc.dfrobot.com.cn/thread-311641-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(11)---WS2812幻彩灯带
https://mc.dfrobot.com.cn/thread-313648-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(12)---米管快速节奏灯
https://mc.dfrobot.com.cn/thread-313708-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(13)---有机棒立柱灯
https://mc.dfrobot.com.cn/thread-313723-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(14)---水杯水瓶灯
https://mc.dfrobot.com.cn/thread-313803-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(15)--横排LED方管灯
https://mc.dfrobot.com.cn/thread-313811-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(16)--热干胶棒棒灯
https://mc.dfrobot.com.cn/thread-313844-1-1.html
【花雕动手做】有趣好玩音乐可视化系列(17)--光导纤维灯
https://mc.dfrobot.com.cn/thread-313867-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(18)--LED平面板灯
https://mc.dfrobot.com.cn/thread-313951-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(19)--通体光纤灯
https://mc.dfrobot.com.cn/thread-313962-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(20)--首饰盒镜子灯
https://mc.dfrobot.com.cn/thread-313969-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(21)--CD 光盘灯
https://mc.dfrobot.com.cn/thread-313984-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(22)--LED无限魔方
https://mc.dfrobot.com.cn/thread-313994-1-1.html
【花雕动手做】有趣好玩的音乐可视化(23)--3合1闪点光纤
https://mc.dfrobot.com.cn/thread-314168-1-1.html
【花雕动手做】有趣好玩的音乐可视化(24)--无限LED镜子灯
https://mc.dfrobot.com.cn/thread-314180-1-1.html
【花雕动手做】有趣好玩音乐可视化(25)--水龙卷旋涡灯
https://mc.dfrobot.com.cn/thread-314231-1-1.html
【花雕动手做】有趣好玩音乐可视化系列(26)--LED 超立方体
https://mc.dfrobot.com.cn/thread-314244-1-1.html
【花雕动手做】有趣好玩的音乐可视化(27)--磁搅LED水旋灯
https://mc.dfrobot.com.cn/thread-314273-1-1.html


回复

使用道具 举报

12
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail