3386

帖子

0

TA的资源

五彩晶圆(中级)

21
 

实验场景图  动态图  

 

 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

22
 

实验的视频记录

 

 

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

 

 


 

 
 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

23
 

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

 

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

#include <Adafruit_NeoPixel.h>
#define MIC A0 // 麦克风与A0相连接
#define LED_PIN 6 // LED are connected to D6
#define N_PIXELS 24 // Number of LED
#define N 100 //样本数
#define fadeDelay 10 // 淡出量
#define noiseLevel 80 // 降噪下限

Adafruit_NeoPixel strip = Adafruit_NeoPixel(N_PIXELS, LED_PIN, NEO_GRB + NEO_KHZ800);

int samples[N]; // 存储样本
int periodFactor = 0; // 用于周期计算
int t1 = -1;
int T;
int slope;
byte periodChanged = 0;

void setup() {
  // Serial.begin(9600);
  strip.begin();
  ledsOff();
  delay(500);
  displayColor(Wheel(100));
  strip.show();
  delay(500);
}

void loop() {
  Samples();
}

void Samples() {
  for (int i = 0; i < N; i++) {
    samples[i] = analogRead(0);
    if (i > 0) {
      slope = samples[i] - samples[i - 1];
    }
    else {
      slope = samples[i] - samples[N - 1];
    }

    if (abs(slope) > noiseLevel) {
      if (slope < 0) {
        calculatePeriod(i);
        if (periodChanged == 1) {
          displayColor(getColor(T));
        }
      }
    }
    else {
      ledsOff();
    }
    periodFactor += 1;
    delay(1);
  }
}

void calculatePeriod(int i) {
  if (t1 == -1) {

    t1 = i;
  }
  else {

    int period = periodFactor * (i - t1);
    periodChanged = T == period ? 0 : 1;
    T = period;
    // Serial.println(T);

    t1 = i;
    periodFactor = 0;
  }
}

uint32_t getColor(int period) {
  if (period == -1)
    return Wheel(0);
  else if (period > 400)
    return Wheel(5);
  else
    return Wheel(map(-1 * period, -400, -1, 50, 255));
}

void fadeOut()
{
  for (int i = 0; i < 5; i++) {
    strip.setBrightness(110 - i * 20);
    strip.show(); // Update strip
    delay(fadeDelay);
    periodFactor += fadeDelay;
  }
}

void fadeIn() {
  strip.setBrightness(100);
  strip.show();

  for (int i = 0; i < 5; i++) {
    //strip.setBrightness(20*i + 30);
    //strip.show();
    delay(fadeDelay);
    periodFactor += fadeDelay;
  }
}

void ledsOff() {
  fadeOut();
  for (int i = 0; i < N_PIXELS; i++) {
    strip.setPixelColor(i, 0, 0, 0);
  }
}

void displayColor(uint32_t color) {
  for (int i = 0; i < N_PIXELS; i++) {
    strip.setPixelColor(i, color);
  }
  fadeIn();
}

uint32_t Wheel(byte WheelPos) {
  // Serial.println(WheelPos);
  if (WheelPos < 85) {

    return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
  }
  else if (WheelPos < 170) {
    WheelPos -= 85;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  }
  else {
    WheelPos -= 170;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
}

 

 
 
 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

24
 

实验场景图  动态图

 

 

 
 
 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

25
 

实验的视频记录(《西部世界》主题曲2分7秒)

 

 

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

 


 

赞赏

1

查看全部赞赏

 
 
 

回复

4942

帖子

12

TA的资源

版主

26
 
把这个绑摩托车上,车头一翘,阎王一笑

点评

谢谢斑竹的鼓励  详情 回复 发表于 2022-7-19 15:24
 
 
 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

27
 
吾妻思萌 发表于 2022-7-19 13:44 把这个绑摩托车上,车头一翘,阎王一笑

谢谢斑竹的鼓励

 
 
 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

28
 

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

 

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

#include<FastLED.h>
#include<MegunoLink.h>
#include<Filter.h>

// define necessary parameters
#define N_PIXELS  24
#define MIC_PIN   A0
#define LED_PIN   D6 // labeled "D6" on the board
// the following parameters can be tweaked according to your audio levels
#define NOISE 50
#define TOP   (N_PIXELS+2) // allow the max level to be slightly off scale
#define LED_TYPE  WS2811
#define BRIGHTNESS  18     // a little dim for recording purposes
#define COLOR_ORDER GRB

// declare the LED array
CRGB leds[N_PIXELS];

// define the variables needed for the audio levels
int lvl = 0, minLvl = 0, maxLvl = 600; // tweak the min and max as needed

// instantiate the filter class for smoothing the raw audio signal
ExponentialFilter<long> ADCFilter(5,0);

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  // initialize the LED object
  FastLED.addLeds<LED_TYPE,LED_PIN,COLOR_ORDER>(leds,N_PIXELS).setCorrection(TypicalLEDStrip);
  FastLED.setBrightness(BRIGHTNESS);
}

void loop() {
  // put your main code here, to run repeatedly:
  // read the audio signal and filter it
  int n, height;
  n = analogRead(MIC_PIN);
  // remove the MX9614 bias of 1.25VDC
  n = abs(1023 - n);
  // hard limit noise/hum
  n = (n <= NOISE) ? 0 : abs(n - NOISE);
  // apply the exponential filter to smooth the raw signal
  ADCFilter.Filter(n);
  lvl = ADCFilter.Current();
//  // plot the raw versus filtered signals
//  Serial.print(n);
//  Serial.print(" ");
//  Serial.println(lvl);
  // calculate the number of pixels as a percentage of the range
  // TO-DO: can be done dynamically by using a running average of min/max audio levels
  height = TOP * (lvl - minLvl) / (long)(maxLvl - minLvl);
  if(height < 0L) height = 0;
  else if(height > TOP) height = TOP;
  // turn the LEDs corresponding to the level on/off
  for(uint8_t i = 0; i < N_PIXELS; i++) {
    // turn off LEDs above the current level
    if(i >= height) leds[i] = CRGB(0,0,0);
    // otherwise, turn them on!
    else leds[i] = Wheel( map( i, 0, N_PIXELS-1, 30, 150 ) );
  }
  FastLED.show();
}

CRGB Wheel(byte WheelPos) {
  // return a color value based on an input value between 0 and 255
  if(WheelPos < 85)
    return CRGB(WheelPos * 3, 255 - WheelPos * 3, 0);
  else if(WheelPos < 170) {
    WheelPos -= 85;
    return CRGB(255 - WheelPos * 3, 0, WheelPos * 3);
  } else {
    WheelPos -= 170;
    return CRGB(0, WheelPos * 3, 255 - WheelPos * 3);
  }
}

 

 
 
 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

29
 

实验场景图  动态图

 

 
 
 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

30
 

实验的视频记录

 

 

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

 


 

 
 
 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

31
 

实验的视频记录(1分49秒)

 

 

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

 


 

 
 
 

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

32
 

实验的视频记录(50秒)

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



 

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
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
快速回复 返回顶部 返回列表