查看: 313|回复: 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();
}


  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2020-1-15 17:46 | 显示全部楼层
    现在版本就是放手才发送,为了减少通信频率,就这样设计的
  • TA的每日心情
    慵懒
    2020-1-17 14:07
  • 签到天数: 2 天

    [LV.1]初来乍到

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

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

    点评

    已经判断了  详情 回复 发表于 2020-1-17 14:17
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 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
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2020-1-19 23:30 | 显示全部楼层
    fuzongxian 发表于 2020-1-18 17:37
    那要怎么做,才能达到图片里的效果?

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

    本版积分规则

    热门推荐

    [限时福利]5分钟带你快速了解新一代开发板:M5STACK
    [限时福利]5分钟带你快速
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    小爱同学+Blinker控制灯
    小爱同学+Blinker控制灯
    来这个社区已经很久了,有很多问题都是在这里解决的。在此谢谢他们!这里我也分享一个
    使用74hc595驱动一位数码管
    使用74hc595驱动一位数码
    74hc595是一种常用的I/O拓展芯片,今天我尝试用一个74hc595来驱动一个一位七段数码管
    74HC595的疑惑终于解开
    74HC595的疑惑终于解开
    对于74HC595的教程中和网上的资料看完还是模糊,于是一边接线测试,一边反复看图研究
    数据转换求助!!!
    数据转换求助!!!
    如何将 String str =“123,2132,1321,11”; 转换成 uint16_t A[4]= str
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表