ws2812灯条控制效果-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4058|回复: 5

[已解答] ws2812灯条控制效果

[复制链接]
发表于 2020-1-15 16:18 | 显示全部楼层 |阅读模式

上图是BLINKER官方示例里的图片。
图中的控制效果,灯的变化和手指滑动是同步的。
我自己做出来的效果是手指滑到某一个色,放开手指了,灯才变成那个色,滑动过程中,灯不变色。
怎么解决?我加什么代码?
以下是我找到的示例代码:
========================================================
#define BLINKER_PRINT    Serial
#define BLINKER_WIFI

#include <Blinker.h>

char auth[] = "**********";
char ssid[] = "***********";
char pswd[] = "**********";

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
  #include <avr/power.h>
#endif

#define PIN            0
#define NUMPIXELS      1
#define Number_1 "LED_R"
#define Number_2 "LED_G"
#define Number_3 "LED_B"

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

BlinkerNumber Number1 (Number_1);
BlinkerNumber Number2 (Number_2);
BlinkerNumber Number3 (Number_3);

#define RGB_1 "RGBKey"

BlinkerRGB RGB1(RGB_1);

void rgb1_callback(uint8_t r_value, uint8_t g_value, uint8_t b_value, uint8_t bright_value)
{
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    BLINKER_LOG("R value: ", r_value);
    BLINKER_LOG("G value: ", g_value);
    BLINKER_LOG("B value: ", b_value);
    BLINKER_LOG("Rrightness value: ", bright_value);

    uint8_t colorR = map(r_value, 0, 255, 0, bright_value);
    uint8_t colorG = map(g_value, 0, 255, 0, bright_value);
    uint8_t colorB = map(b_value, 0, 255, 0, bright_value);

    Number1.print(r_value);
    Number2.print(g_value);
    Number3.print(b_value);

    for(int i = 0; i < NUMPIXELS; i++){
        pixels.setPixelColor(i, pixels.Color(colorR,colorG,colorB));
        pixels.show();
    }
}

void setup()
{
    Serial.begin(115200);

    #if defined(BLINKER_PRINT)
        BLINKER_DEBUG.stream(BLINKER_PRINT);
    #endif

    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, LOW);

    Blinker.begin(auth, ssid, pswd);

    pixels.begin();

    RGB1.attach(rgb1_callback);
}

void loop()
{
    Blinker.run();
}


发表于 2020-1-15 17:46 | 显示全部楼层
现在版本就是放手才发送,为了减少通信频率,就这样设计的
发表于 2020-1-17 14:12 | 显示全部楼层
奈何col 发表于 2020-1-15 17:46
现在版本就是放手才发送,为了减少通信频率,就这样设计的

能不能判断如果是本地局域网, 增加通信频率?

点评

已经判断了  详情 回复 发表于 2020-1-17 14:17
发表于 2020-1-17 14:17 | 显示全部楼层
shark526 发表于 2020-1-17 14:12
能不能判断如果是本地局域网, 增加通信频率?

已经判断了
 楼主| 发表于 2020-1-18 17:37 | 显示全部楼层
奈何col 发表于 2020-1-15 17:46
现在版本就是放手才发送,为了减少通信频率,就这样设计的

那要怎么做,才能达到图片里的效果?

点评

当前版本无法高频率连续发送,可以自己写个渐变过度,让颜色变化更自然  详情 回复 发表于 2020-1-19 23:30
发表于 2020-1-19 23:30 | 显示全部楼层
fuzongxian 发表于 2020-1-18 17:37
那要怎么做,才能达到图片里的效果?

当前版本无法高频率连续发送,可以自己写个渐变过度,让颜色变化更自然
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 06:40 , Processed in 0.099061 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表