blinker滑块控制RGB三色LED灯亮度和色彩-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6715|回复: 10

[分享] blinker滑块控制RGB三色LED灯亮度和色彩

[复制链接]
发表于 2019-8-9 13:41 | 显示全部楼层 |阅读模式
    目前关于blinker滑块应用的例程并不多,通过学习blinker滑块示例程序以及在奈何老师的指导下终于试成了用blinker滑块来控制单个LED灯的亮暗.照猫画虎近而
实现了用三个滑块控制RGB三色LED灯亮度和色彩.程序如下:

#define BLINKER_WIFI

#include <Blinker.h>

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

#define Slider_1 "SliderKey1"
#define Slider_2 "SliderKey2"
#define Slider_3 "SliderKey3"
BlinkerSlider Slider1(Slider_1);
BlinkerSlider Slider2(Slider_2);
BlinkerSlider Slider3(Slider_3);
int i=0,j=0,k=0;
void slider1_callback(int32_t value)
{
    BLINKER_LOG("get slider value: ", value);
    i=value;
}
void slider2_callback(int32_t value)
{
    BLINKER_LOG("get slider value: ", value);
    j=value;
}
void slider3_callback(int32_t value)
{
    BLINKER_LOG("get slider value: ", value);
    k=value;
}
void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);

    Blinker.vibrate();
   
    uint32_t BlinkerTime = millis();
    Blinker.print(BlinkerTime);
    Blinker.print("millis", BlinkerTime);
   
}

void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
     pinMode(D3,OUTPUT);
     pinMode(D4,OUTPUT);
     pinMode(D5,OUTPUT);

    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);

      Slider1.attach(slider1_callback);
      Slider2.attach(slider2_callback);
      Slider3.attach(slider3_callback);
}

void loop()
{

  analogWrite(D3,i);//R
  analogWrite(D4,j);//G
  analogWrite(D5,k);//B
    Blinker.run();
  
}
    补充说明的是blinker app上各滑块数值大小为0-1000,我用的arduino板是wemos d1.PWM端口输出最大电压为3V不能达到蓝绿LED电压的要求同时RGB三色LED灯品种
功率不同所以要通8050三极管放大电流驱动RGB三色LED灯.此例程仅供参考不当之处恳请大家批评指正.

发表于 2020-5-10 16:25 | 显示全部楼层
你好可以简单介绍工作原理码或者函数执行步骤,谢谢指教[img],附件是我自己总结的,帮忙看看是否正确
发表于 2020-5-10 16:25 | 显示全部楼层
你好可以简单介绍工作原理码或者函数执行步骤,谢谢指教[img],附件是我自己总结的,帮忙看看是否正确
发表于 2020-5-10 16:26 | 显示全部楼层
目标控制单个灯的明暗就够了
 楼主| 发表于 2020-5-10 16:58 | 显示全部楼层
1431753885 发表于 2020-5-10 16:26
目标控制单个灯的明暗就够了

控制单个灯的程序如下,你总结的附件在哪里我看不到.
#define BLINKER_WIFI

#include <Blinker.h>

char auth[] = "Your Device Secret Key";
char ssid[] = "Your WiFi network SSID or name";
char pswd[] = "Your WiFi network WPA password or WEP key";

#define Slider_1 "SliderKey1"

BlinkerSlider Slider1(Slider_1);

int i=0;
void slider1_callback(int32_t value)
{
    BLINKER_LOG("get slider value: ", value);
    i=value;
}

void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);

    Blinker.vibrate();
   
    uint32_t BlinkerTime = millis();
    Blinker.print(BlinkerTime);
    Blinker.print("millis", BlinkerTime);
   
}

void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
     pinMode(D3,OUTPUT);
   

    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);

      Slider1.attach(slider1_callback);
   
}

void loop()
{

  analogWrite(D3,i);//R

    Blinker.run();
发表于 2020-5-12 19:41 来自手机 | 显示全部楼层
这控制的led是什么型号?2812吗,用nodemcu可以吗
 楼主| 发表于 2020-5-12 19:56 | 显示全部楼层
本帖最后由 lwq1947 于 2020-5-12 19:57 编辑
minqqq 发表于 2020-5-12 19:41
这控制的led是什么型号?2812吗,用nodemcu可以吗

我用的是 3*1W RGB 灯珠.可以用nodemcu.但也都要通8050三极管放大来驱动RGB三色LED灯.
发表于 2021-11-14 21:52 | 显示全部楼层
void slider1_callback(int32_t value)
{
    //digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    BLINKER_LOG("get slider value: ", value);
    i=value;

全局变量i,赋值不了啊,有懂这么方面的大佬吗
 楼主| 发表于 2021-11-15 07:29 | 显示全部楼层
本帖最后由 lwq1947 于 2021-11-15 07:38 编辑
abc1428587033 发表于 2021-11-14 21:52
void slider1_callback(int32_t value)
{
    //digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
blinker app中的数据键名要和程序中的一致才行.
发表于 2022-4-13 23:18 | 显示全部楼层
abc1428587033 发表于 2021-11-14 21:52
void slider1_callback(int32_t value)
{
    //digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));

你好,请问你解决了这个问题了吗?我也是在callback函数中把获得的value的值赋给全局变量,但是全局变量还是0.而且我在callback函数中写串口打印某个value值,串口也没有显示。但是在blinker的调试界面里面是可以看到组件正常获取了value的值。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 09:40 , Processed in 0.132326 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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