eagler8

  • 2022-10-04
  • 回复了主题帖: 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯

    实验场景图  

  • 回复了主题帖: 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯

    实验的视频记录   优酷:https://v.youku.com/v_show/id_XNTkwNzE3NjM2OA==.html?spm=a2hcb.playlsit.page.1   B站:https://www.bilibili.com/video/BV1te4y1J7QG/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5    

  • 回复了主题帖: 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯

      【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯   项目程序之四:磁搅LED水旋NeoPixel 环形灯条   模块接线:WS2812B接D6   MAX4466      UNO   VCC          5V   GND         GND   OUT          A0   /* 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯 项目程序之四:磁搅LED水旋NeoPixel 环形灯条 模块接线:WS2812B接D6 MAX4466 UNO VCC 5V GND GND OUT A0 */ #include <Adafruit_NeoPixel.h> #ifdef __AVR__ #include <avr/power.h> // Required for 16 MHz Adafruit Trinket #endif // Which pin on the Arduino is connected to the NeoPixels? // On a Trinket or Gemma we suggest changing this to 1: #define LED_PIN 6 // How many NeoPixels are attached to the Arduino? #define LED_COUNT 16 // Declare our NeoPixel strip object: Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // Argument 1 = Number of pixels in NeoPixel strip // Argument 2 = Arduino pin number (most are valid) // Argument 3 = Pixel type flags, add together as needed: // NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) // NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) // NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products) // NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2) // NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products) // setup() function -- runs once at startup -------------------------------- void setup() { // These lines are specifically to support the Adafruit Trinket 5V 16 MHz. // Any other board, you can remove this part (but no harm leaving it): #if defined(__AVR_ATtiny85__) && (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif // END of Trinket-specific code. strip.begin(); // INITIALIZE NeoPixel strip object (REQUIRED) strip.show(); // Turn OFF all pixels ASAP strip.setBrightness(250); // Set BRIGHTNESS to about 1/5 (max = 255) } // loop() function -- runs repeatedly as long as board is on --------------- void loop() { // Fill along the length of the strip in various colors... colorWipe(strip.Color(255, 0, 0), 250); // Red colorWipe(strip.Color( 0, 255, 0), 250); // Green colorWipe(strip.Color( 0, 0, 255), 250); // Blue // Do a theater marquee effect in various colors... theaterChase(strip.Color(127, 127, 127), 250); // White, half brightness theaterChase(strip.Color(127, 0, 0), 250); // Red, half brightness theaterChase(strip.Color( 0, 0, 127), 250); // Blue, half brightness rainbow(10); // Flowing rainbow cycle along the whole strip theaterChaseRainbow(50); // Rainbow-enhanced theaterChase variant } // Some functions of our own for creating animated effects ----------------- // Fill strip pixels one after another with a color. Strip is NOT cleared // first; anything there will be covered pixel by pixel. Pass in color // (as a single 'packed' 32-bit value, which you can get by calling // strip.Color(red, green, blue) as shown in the loop() function above), // and a delay time (in milliseconds) between pixels. void colorWipe(uint32_t color, int wait) { for (int i = 0; i < strip.numPixels(); i++) { // For each pixel in strip... strip.setPixelColor(i, color); // Set pixel's color (in RAM) strip.show(); // Update strip to match delay(30); // Pause for a moment } } // Theater-marquee-style chasing lights. Pass in a color (32-bit value, // a la strip.Color(r,g,b) as mentioned above), and a delay time (in ms) // between frames. void theaterChase(uint32_t color, int wait) { for (int a = 0; a < 20; a++) { // Repeat 10 times... for (int b = 0; b < 3; b++) { // 'b' counts from 0 to 2... strip.clear(); // Set all pixels in RAM to 0 (off) // 'c' counts up from 'b' to end of strip in steps of 3... for (int c = b; c < strip.numPixels(); c += 3) { strip.setPixelColor(c, color); // Set pixel 'c' to value 'color' } strip.show(); // Update strip with new contents delay(30); // Pause for a moment } } } // Rainbow cycle along whole strip. Pass delay time (in ms) between frames. void rainbow(int wait) { // Hue of first pixel runs 5 complete loops through the color wheel. // Color wheel has a range of 65536 but it's OK if we roll over, so // just count from 0 to 5*65536. Adding 256 to firstPixelHue each time // means we'll make 5*65536/256 = 1280 passes through this outer loop: for (long firstPixelHue = 0; firstPixelHue < 2 * 65536; firstPixelHue += 256) { for (int i = 0; i < strip.numPixels(); i++) { // For each pixel in strip... // Offset pixel hue by an amount to make one full revolution of the // color wheel (range of 65536) along the length of the strip // (strip.numPixels() steps): int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels()); // strip.ColorHSV() can take 1 or 3 arguments: a hue (0 to 65535) or // optionally add saturation and value (brightness) (each 0 to 255). // Here we're using just the single-argument hue variant. The result // is passed through strip.gamma32() to provide 'truer' colors // before assigning to each pixel: strip.setPixelColor(i, strip.gamma32(strip.ColorHSV(pixelHue))); } strip.show(); // Update strip with new contents delay(2); // Pause for a moment } } // Rainbow-enhanced theater marquee. Pass delay time (in ms) between frames. void theaterChaseRainbow(int wait) { int firstPixelHue = 0; // First pixel starts at red (hue 0) for (int a = 0; a < 30; a++) { // Repeat 30 times... for (int b = 0; b < 3; b++) { // 'b' counts from 0 to 2... strip.clear(); // Set all pixels in RAM to 0 (off) // 'c' counts up from 'b' to end of strip in increments of 3... for (int c = b; c < strip.numPixels(); c += 3) { // hue of pixel 'c' is offset by an amount to make one full // revolution of the color wheel (range 65536) along the length // of the strip (strip.numPixels() steps): int hue = firstPixelHue + c * 65536L / strip.numPixels(); uint32_t color = strip.gamma32(strip.ColorHSV(hue)); // hue -> RGB strip.setPixelColor(c, color); // Set pixel 'c' to value 'color' } strip.show(); // Update strip with new contents delay(50); // Pause for a moment firstPixelHue += 65536 / 90; // One cycle of color wheel over 90 frames } } }  

  • 回复了主题帖: 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯

    尝试大一号的散热风扇    

  • 2022-10-03
  • 回复了主题帖: 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯

    实验场景图    

  • 回复了主题帖: 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯

    实验的视频记录   优酷:https://v.youku.com/v_show/id_XNTkwODc1MzQ4MA==.html?spm=a2hcb.playlsit.page.1   B站:https://www.bilibili.com/video/BV1pe4y1z7uA/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5    

  • 回复了主题帖: 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯

      【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯   项目程序之三:磁搅LED水旋MegunoLink音乐节拍灯   模块接线:WS2812B接D6   MAX4466      UNO   VCC          5V   GND         GND   OUT          A0   /* 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯 项目程序之三:磁搅LED水旋MegunoLink音乐节拍灯 模块接线:WS2812B接D6 MAX4466 UNO VCC 5V GND GND OUT A0 */ #include<FastLED.h> #include<MegunoLink.h> #include<Filter.h> #define N_PIXELS 16 #define MIC_PIN A0 #define LED_PIN 6 #define NOISE 10 #define TOP (N_PIXELS+2) #define LED_TYPE WS2811 #define BRIGHTNESS 10 #define COLOR_ORDER GRB CRGB leds[N_PIXELS]; int lvl = 0, minLvl = 0, maxLvl = 10; ExponentialFilter<long> ADCFilter(5, 0); void setup() { FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, N_PIXELS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(BRIGHTNESS); } void loop() { int n, height; n = analogRead(MIC_PIN); n = abs(1023 - n); n = (n <= NOISE) ? 0 : abs(n - NOISE); ADCFilter.Filter(n); lvl = ADCFilter.Current(); // Serial.print(n); // Serial.print(" "); // Serial.println(lvl); height = TOP * (lvl - minLvl) / (long)(maxLvl - minLvl); if (height < 0L) height = 0; else if (height > TOP) height = TOP; for (uint8_t i = 0; i < N_PIXELS; i++) { if (i >= height) leds[i] = CRGB(0, 0, 0); else leds[i] = Wheel( map( i, 0, N_PIXELS - 1, 30, 150 ) ); } FastLED.show(); } CRGB Wheel(byte WheelPos) { 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); } }  

  • 回复了主题帖: 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯

    实验的视频记录   B站:https://www.bilibili.com/video/BV16e4y1J7rm/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5    

  • 回复了主题帖: 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯

     【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯   项目程序之二:磁搅LED水旋音乐反应节奏灯   模块接线:WS2812B接D6   MAX4466      UNO   VCC          5V   GND         GND   OUT          D6   /* 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯 项目程序之二:磁搅LED水旋音乐反应节奏灯 模块接线:WS2812B接D6 MAX4466 UNO VCC 5V GND GND OUT D6 */ #include<FastLED.h> #define LED_PIN 6 #define NUM_LEDS 16 CRGB leds[NUM_LEDS]; uint8_t hue = 0; int soundsensor = A0; void setup() { delay(2000); FastLED.addLeds<WS2812B, LED_PIN, GRB>(leds, NUM_LEDS); FastLED.setBrightness(255); pinMode(soundsensor, INPUT); } void loop() { int sensval = digitalRead(soundsensor); if (sensval == 1) { leds[0] = CRGB :: Red; fill_solid(leds, NUM_LEDS, CRGB :: Blue); rainbow_moving(); FastLED.show(); delay(10); } else { leds[0] = CRGB :: Black; fill_solid(leds, NUM_LEDS, CRGB :: Black); FastLED.show(); delay(10); } } void rainbow_moving() { for (int i = 0; i < NUM_LEDS; i++) { leds[i] = CHSV(hue + (i * 10), 255, 255); } EVERY_N_MILLISECONDS(10) { hue++; } }  

  • 回复了主题帖: 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯

    实验场景图   

  • 回复了主题帖: 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯

    实验的视频记录   优酷:https://v.youku.com/v_show/id_XNTkwODc0MDE4MA==.html?spm=a2hcb.playlsit.page.1   B站:https://www.bilibili.com/video/BV1wg411v7Tx/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5    

  • 回复了主题帖: 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯

    实验场景图  动态图    

  • 回复了主题帖: 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯

     【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯   项目程序之一:四色彩灯循环测试   模块接线:WS2812B接D6   MAX4466      UNO   VCC          5V   GND         GND   OUT          D6   /* 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯 项目程序之一:四色彩灯循环测试 模块接线:WS2812B接D6 MAX4466 UNO VCC 5V GND GND OUT D6 */ #include <FastLED.h> #define LEDPIN 6 #define NUMOFLEDS 16 CRGB leds[NUMOFLEDS]; void setup() { FastLED.addLeds<WS2812, LEDPIN, GRB>(leds, NUMOFLEDS); } void loop() { for (int i = 0; i <= 15; i++) { leds[i] = CRGB(0, 0, 255); FastLED.show(); delay(40); } for (int i = 15; i >= 0; i--) { leds[i] = CRGB(255, 0, 0); FastLED.show(); delay(40); } for (int i = 0; i <= 15; i++) { leds[i] = CRGB(0, 255, 0); FastLED.show(); delay(40); } for (int i = 15; i >= 0; i--) { leds[i] = CRGB(255, 255, 255); FastLED.show(); delay(40); } }  

  • 回复了主题帖: 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯

    声音模块,使用性价比更高的MAX4466声音传感器。   MAX4466 是微功率运算放大器,经过优化,可用作麦克风前置放大器。它们提供了优化的增益带宽产品与电源电流的理想组合,以及超小型封装中实现低电压工件环境。 MAX4466具有增益稳定特性,仅需24μA的电源电流即可提供200kHz的增益带宽。经过解压缩,可实现+5V/V的最小稳定增益,并提供600KHZ增益带宽。此外这些放大器具有轨到轨输出,高 AVOL ,以及出色的电源抑制和共模抑制比,适合在嘈杂环境中工作。广泛应用于蜂窝电话、数字复读装置、耳机、助听器、麦克风前置放大器、便携计算机和语音识别系统中。  

  • 回复了主题帖: 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯

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

  • 回复了主题帖: 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯

      WS2812B灯带选用的是每米60灯黑底裸板  

  • 回复了主题帖: 【Arduino】168种传感器系列实验(211)--- WS2812B 环形93灯模块

    Honghuzaitian 发表于 2022-10-3 13:03 IN和DO的接线还可以优化一下,弄到同一边可能更好。
    结构就这样的,同不到一边

  • 回复了主题帖: 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯

    实验场景图  

  • 回复了主题帖: 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯

    简易的磁搅头    

  • 回复了主题帖: 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯

    用热干胶固定二颗钕强磁块  

统计信息

已有163人来访过

  • 芯积分:4715
  • 好友:4
  • 主题:99
  • 回复:2737
  • 课时:--
  • 资源:--

留言

你需要登录后才可以留言 登录 | 注册


eagler8 2020-4-8
   你都搜到什么了? 我的微信13805010660,加你了
9zhmke 2020-4-8
刚去网上搜了下,搞不好你比我大.....我72年的,加个好友吧,我QQ693985,微信msold5
9zhmke 2020-4-8
eagler8:    老师早上好,我是偶然爱好的,没有什么基础,呵呵
你的时间安排上有没有精力做其他东西呢?
9zhmke 2020-4-7
eagler8: 中午好
下午好,你的干劲好足啊,是你的工作还是因为你是学生呢?有兴趣一起做些东西吗?我有挺多想法,但总是没有时间弄。
查看全部