blinker滑块控制RGB三色LED灯亮度和色彩
目前关于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灯.此例程仅供参考不当之处恳请大家批评指正.
你好可以简单介绍工作原理码或者函数执行步骤,谢谢指教,附件是我自己总结的,帮忙看看是否正确 你好可以简单介绍工作原理码或者函数执行步骤,谢谢指教,附件是我自己总结的,帮忙看看是否正确 目标控制单个灯的明暗就够了 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(); 这控制的led是什么型号?2812吗,用nodemcu可以吗 本帖最后由 lwq1947 于 2020-5-12 19:57 编辑
minqqq 发表于 2020-5-12 19:41
这控制的led是什么型号?2812吗,用nodemcu可以吗
我用的是 3*1W RGB 灯珠.可以用nodemcu.但也都要通8050三极管放大来驱动RGB三色LED灯. void slider1_callback(int32_t value)
{
//digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
BLINKER_LOG("get slider value: ", value);
i=value;
全局变量i,赋值不了啊,有懂这么方面的大佬吗 本帖最后由 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中的数据键名要和程序中的一致才行. 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的值。
页:
[1]