驴友花雕 发表于 2022-12-16 15:46:04

【花雕动手做】看见声音,基于Arduino系列音乐可视器(33)

偶然心血来潮,想要做一个音乐可视化的系列专题。这个专题的难度有点高,涉及面也比较广泛,相关的FFT和FHT等算法也相当复杂,不过还是打算从最简单的开始,实际动手做做试验,耐心尝试一下各种方案,逐步积累些有用的音乐频谱可视化的资料,也会争取成型一些实用好玩的音乐可视器项目。

作为曾经的历史见证,手头的几片核酸托盘泡沫板,正好可以用来尝试做个音乐可视化的小项目,我给它起的名字就叫核酸托盘灯。



驴友花雕 发表于 2022-12-16 15:48:18

本帖最后由 驴友花雕 于 2022-12-19 19:19 编辑






星辰大海://。, 发表于 2022-12-17 08:17:55

不错唉

驴友花雕 发表于 2022-12-17 18:19:23

星辰大海://。, 发表于 2022-12-17 08:17
不错唉

谢谢鼓励

驴友花雕 发表于 2022-12-18 17:11:32

WS2812B灯带选用的是每米30灯白底裸板



驴友花雕 发表于 2022-12-18 17:15:29

WS2812B其主要特点
智能反接保护,电源反接不会损坏IC。
IC控制电路与LED点光源公用一个电源。
控制电路与RGB芯片集成在一个5050封装的元器件中,构成一个完整的外控像素点。
内置信号整形电路,任何一个像素点收到信号后经过波形整形再输出,保证线路波形畸变不会累加。
内置上电复位和掉电复位电路。
每个像素点的三基色颜色可实现256级亮度显示,完成16777216种颜色的全真色彩显示,扫描频率不低于400Hz/s。
串行级联接口,能通过一根信号线完成数据的接收与解码。
任意两点传传输距离在不超过5米时无需增加任何电路。
当刷新速率30帧/秒时,级联数不小于1024点。
数据发送速度可达800Kbps。
光的颜色高度一致,性价比高。

主要应用领域
LED全彩发光字灯串,LED全彩模组, LED全彩软灯条硬灯条,LED护栏管。
LED点光源,LED像素屏,LED异形屏,各种电子产品,电器设备跑马灯。



驴友花雕 发表于 2022-12-18 17:18:33

WS2812B灯带的电原理图



驴友花雕 发表于 2022-12-18 20:03:12


驴友花雕 发表于 2022-12-18 20:07:47


驴友花雕 发表于 2022-12-18 20:09:48



驴友花雕 发表于 2022-12-18 20:13:31

Arduino uno开发板接线示意图



驴友花雕 发表于 2022-12-18 20:18:14

将WS2812 LED灯带裁剪为二十段



驴友花雕 发表于 2022-12-18 20:22:44

粘贴在底板上


驴友花雕 发表于 2022-12-19 19:23:40

忙乎半天,终于焊接好了126个焊点


驴友花雕 发表于 2022-12-19 19:34:24

泡沫的托盘太透光了,这里使用软镜子来实现单LED的光线隔离


驴友花雕 发表于 2022-12-19 19:38:20

对应100颗WS2812灯的光隔离,全部完成


驴友花雕 发表于 2022-12-19 20:21:15

【花雕动手做】有趣好玩的音乐可视化系列项目(33)---核酸托盘灯
项目程序之一:绿色单灯循环测试
模块接线:WS2812B接D6
MAX4466      UNO
VCC          5V
GND         GND
OUT          D6

/*
【花雕动手做】有趣好玩的音乐可视化系列项目(33)---核酸托盘灯
项目程序之一:绿色单灯循环测试
模块接线:WS2812B接D6
MAX4466      UNO
VCC          5V
GND         GND
OUT          D6
*/

#include <Adafruit_NeoPixel.h>

#define PIN 6
#define MAX_LED 100

#define ADD true
#define SUB false

int val = 0;
boolean stat = ADD;

Adafruit_NeoPixel strip = Adafruit_NeoPixel( MAX_LED, PIN, NEO_RGB + NEO_KHZ800 );

void setup() {
strip.begin();
strip.show();
}

void loop() {
uint8_t i, a = 0;
uint32_t color = strip.Color(255, 100, 0);

while (a < 101)
{
    for (i = 0; i < 100; i++)
    {
      if (i == a) strip.setPixelColor(i, color);
      else strip.setPixelColor(i, 0);
    }
    strip.show();
    delay(30);
    a++;
}
}

驴友花雕 发表于 2022-12-19 20:22:45

实验场景图


驴友花雕 发表于 2022-12-19 20:25:01

动图


驴友花雕 发表于 2022-12-19 20:35:48

明天出门新疆,待续…….




赤星三春牛! 发表于 2022-12-21 10:05:05

哇!厉害厉害{:6_215:}
页: [1] 2
查看完整版本: 【花雕动手做】看见声音,基于Arduino系列音乐可视器(33)