查看: 1241|回复: 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-4-15 14:17
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 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是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    ESP8266电池供电如何接线?
    ESP8266电池供电如何接线
    小白一枚,最近捣腾ESP8266-12F[/backcolor],在烧录架上烧录好Blinker程序是正常运行
    莫斯精灵
    莫斯精灵
      在抗战和谍情影片中无线电台发出的嘀嘀嗒嗒声大家一定印象深刻吧?其实就是将信
    AM广播环境监测仪
    AM广播环境监测仪
    #描述 之前在论坛看到一个帖子,可以让UNO产生1MHz-AM 调幅波并短距离发送电报。
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表