blinker控制共阴极RGB彩灯-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5771|回复: 7

[分享] blinker控制共阴极RGB彩灯

[复制链接]
发表于 2018-6-24 22:38 | 显示全部楼层 |阅读模式
本帖最后由 chen70854022 于 2018-6-24 22:38 编辑

一直想做个物联网的彩灯,之前一直在研究机智云,后来发现了blinker,相比较而言,个人感觉blinker比机智云更简单,可以直接用arduino IDE给8266写程序,而且blinker有很多的库,直接调用即可。简单、明了、易懂。blinker本身自带了很多例程,里面的氛围灯就是RGB灯。不过控制的是ws2812,这种灯自带驱动芯片,只需要一条数据线就可以驱动方便省事,但是比较贵,我手里没有WS2812只有普通的共阴极的RGB灯。所以对例程稍作修改即可。第一次使用需要安装8266库,可以到置顶的帖子里去下载安装,里面说的很清楚了。下面直接看代码吧,例程中的代码没有注释,我会在我的代码中尽力多的加一些注释,可能意思表达不一定准确,不过就是这个意思,


[mw_shl_code=bash,true]#define BLINKER_WIFI    //联网模式,分别有蓝牙,WIFI,和MQTT,我的是WIFI,所以我写BLINKER_WIFI

#include <Blinker.h>               //blinker库
#define RGB  "rgb-4gv"          //定义RGB组件,这里的名字必须和手机APP里的RGB组件名一样
#define kaiguan   "tog-cac"    //定义滑动开关组件,这里的名字必须和手机APP里的滑动开关组件名一样
#define dingshi   "ButtonKey"     //定义按钮组件,这里的名字必须和手机APP里的按钮组件名一样
#define TAP_EXAMPLE                     //这个我也不知道
#define r   4                                //定义8266的GIPO4为红色灯的输出
#define g   5                                //定义8266的GIPO5为绿色灯的输出
#define b   13                                 //定义8266的GIPO13为蓝色灯的输出

char ssid[] = "Xiaomi_BA3D";                 //这里是你的WIFI账号
char pswd[] = "**********";                        //这里是你的WIFI密码
void guandeng() {                 //关灯函数
  digitalWrite(r, LOW);
  digitalWrite(g, LOW);
  digitalWrite(b, LOW);
}

uint32_t Time;           //这是我用来定时的
uint32_t Time2;         //这是我用来定时的
void setup()             //这个我就不说了吧
{
  Serial.begin(115200);    //波特率
  pinMode(r, OUTPUT);    //设置R为输出;这里的R==上面的GPIO4也就是设置GPIO4为输出模式
  pinMode(g, OUTPUT);     //同上
  pinMode(b, OUTPUT);     //同上
  Blinker.begin(ssid, pswd);         //初始化
  Blinker.wInit("RGB", W_RGB);   //这里是初始化RGB组件
  Blinker.wInit("kaiguan", W_TOGGLE);//初始化滑动开关组件
  Blinker.wInit("dingshi", W_BUTTON);  //初始化按钮组件
  

}

void loop()
{
  Blinker.run();   //这个比较复杂,我也说不太清楚,反正必须要有,不然各种奇葩问题
  if (Blinker.button(dingshi)) {    //这是我的定时用的,看看就好
    Time = millis() + 5000;
    }
  Time2 = millis();
  if (Time2 == Time) {
  Blinker.print(kaiguan, "off");
  guandeng();
   Blinker.delay(20);
  }


  if (Blinker.toggle(kaiguan)) {        //这里是真正实现RGB灯控制的地方  
    analogWrite(r, map(Blinker.rgb(RGB, R), 0, 255, 0, 1023));        //因为APP里的RGB滑动条是0-255,但8266控制是0-1023,所以这里用一个map
    analogWrite(g, map(Blinker.rgb(RGB, G), 0, 255, 0, 1023));
    analogWrite(b, map(Blinker.rgb(RGB, B), 0, 255, 0, 1023));
  }
  else {
    guandeng();
  }


}
[/mw_shl_code]

评分

参与人数 1抽奖次数 +1 收起 理由
coloz + 1

查看全部评分

 楼主| 发表于 2018-6-24 22:38 | 显示全部楼层
写的超级乱,希望对你有所帮助,祝你好运哈哈
发表于 2018-6-25 14:32 | 显示全部楼层
手机blinker连不上~~
 楼主| 发表于 2018-6-26 15:34 | 显示全部楼层
leisd 发表于 2018-6-25 14:32
手机blinker连不上~~

检查代码啊,记得吧WIFI账号和密码改成你的
发表于 2018-6-26 17:07 | 显示全部楼层
我有亿光的5050 RGB LED,与WS2812一样,有兴趣了解下吗?附件是规格书. 61-236-ICRQHGRBYC-A050505-ET-CS_VP3.pdf (600.73 KB, 下载次数: 17)


 楼主| 发表于 2018-6-26 21:59 | 显示全部楼层
本子芯 发表于 2018-6-26 17:07
我有亿光的5050 RGB LED,与WS2812一样,有兴趣了解下吗?附件是规格书.

5V供电吗 你QQ多少
发表于 2018-6-27 08:46 | 显示全部楼层

论坛好像不支持留联系方式。你私信我你的联系方式吧,我还没权限私信,谢谢!
发表于 2018-6-27 11:16 | 显示全部楼层

哈哈,你申请的好友我也没权限加。我的号:壹玖贰叁柒贰捌伍捌肆。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-1 01:50 , Processed in 0.118624 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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