swim 发表于 2013-7-9 10:56:59

HoneyBee入门教程--第四课--无线控制RGB LED灯 实验一

上节课我们介绍了无线Blink
本节课我们将介绍无线控制RGB LEB
本节课将介绍2种方式来无线控制RGB LED

所需器材:
OCROBOT HoneyBee控制板2块
RGB LED灯一颗
220Ω电阻3颗
面包板专用跳线盒1个
面包板一块

实验一:无线串口控制RGB:
连线图

在接收端连接好RGB LED电路

下载接收端程序

/*
作者:swim
时间:2013年7月9日
发表地址:www.geek-workshop.com
程序说明:无线RGB接收端程序
*/
#include <ZigduinoRadio.h>

//定义变量
int r;
int g;
int b;
//定义输出管脚
int redPin=10;
int greenPin=9;
int bluePin=8;
//定义字符串
String comdata = "";
int numdata = {0}, mark = 0;

void setup()
{
ZigduinoRadio.begin(11);//设置通信通道,可从11-26,通道一致就可通信
Serial.begin(9600);//初始化话串口
pinMode(redPin,OUTPUT);//设置管脚为输出模式
pinMode(greenPin,OUTPUT);
pinMode(bluePin,OUTPUT);
setColor(0,0,0);//初始化LED灯为关闭
}

void loop()
{
while(ZigduinoRadio.available()>0)//当无线接收到数据就执行下面程序
{
    SerialReadVal(3);
}

}

void setColor(int red, int green, int blue)//RGB LED调节颜色的程序
{
analogWrite(redPin, 255-red);
analogWrite(greenPin, 255-green);
analogWrite(bluePin, 255-blue);
}

//下面的为对接收到的数据进行处理的程序不解释
void SerialReadVal(unsigned int comdata_digit)
{
String comdata = "";//串口字符串传递变量
char comdata_mark = ','; //字符串分段标志,可更改
int comdata_mark_count = 0; //分段标志数量
unsigned int comdata_mark_list; //分段标志位置列表,最大63+1段,此三项可视实际情况增减
unsigned int comdata_val_long; //每段字串长度列表,最大64段
String comdata_val; //分段字符串列表,最大64段数据,此数组可在程序开始定义为全局变量,用于返回数据,数据可继续进行深加工

//读入串口数据并赋值给传递变量
while (ZigduinoRadio.available() > 0)
{
    comdata += char(ZigduinoRadio.read());
    delay(2);
}
Serial.println(comdata);
//确定分段标志位置,并判断输入段数是否符合给定值
for (int i = 0; i < comdata.length(); i++)
{
    if (comdata.charAt(i) == comdata_mark)
    {
      comdata_mark_list = i;
      comdata_mark_count++;
    }
}
for (int i = 0; i <= comdata_mark_count; i++)
{
    if (i == 0) comdata_val_long = comdata_mark_list;
    else if (i == comdata_mark_count) comdata_val_long = comdata.length() - comdata_mark_list - 1;
    else comdata_val_long = comdata_mark_list - comdata_mark_list - 1;
}

if (comdata_mark_count < (comdata_digit - 1)) return;

//按给定的段数分段
for (int i = 0; i < comdata_digit; i++)
{
    if (i == 0)
    {
      for (int ii = 0; ii < comdata_val_long; ii++) comdata_val += comdata.charAt(ii);
    }
    else
    {
      for (int ii = 0; ii < comdata_val_long; ii++) comdata_val += comdata.charAt(comdata_mark_list+1+ii);
    }
}
for (int i = 0; i < comdata_digit; i++); //Serial.println(comdata_val); // 串口监视程序运行
b=comdata_val.toInt() ;
g=comdata_val.toInt() ;
r=comdata_val.toInt() ;
setColor(r,g,b);
}

将发射端连接上电脑,下载发射端程序

/*
作者:swim
时间:2013年7月9日
发表地址:www.geek-workshop.com
程序说明:无线RGB发射端程序
*/
#include <ZigduinoRadio.h>
char i;

void setup()
{
ZigduinoRadio.begin(11);
Serial.begin(9600);
}

void loop()
{
if (Serial.available())
{
    ZigduinoRadio.beginTransmission();
    i=(char)Serial.read();
    ZigduinoRadio.write(i);
    ZigduinoRadio.endTransmission();
}
}

然后打开串口监视器,可以输入三种颜色值,以逗号分隔
例如我们输入255,0,0

点击发射后,可以看到LED显示红色

输入0,255,0

显示绿色

输入0,0,255

显示蓝色


视频展示:
http://v.youku.com/v_show/id_XNTgwNzg3NzAw.html

是不是很简单很好玩呢,你也快来试试吧

raiseyu 发表于 2013-8-15 22:50:01

想问的是,那个bitcloud协议栈是怎么使用的?这个zigradio不属于zigbee协议吧,能支持自组网么?

迷你强 发表于 2013-8-15 22:57:35

raiseyu 发表于 2013-8-15 22:50 static/image/common/back.gif
想问的是,那个bitcloud协议栈是怎么使用的?这个zigradio不属于zigbee协议吧,能支持自组网么?

属于,能够,自己安装配置好传感器操作系统就妥了。。

raiseyu 发表于 2013-8-15 23:03:16

还要上操作系统,类似contiki那些吗?到目前还没搞清楚,如果用了contiki,那么应用程序用什么写?还能用arduino吗?

nust_奔跑 发表于 2013-11-18 14:22:59

速度放出教程啊!!!

swim 发表于 2013-11-20 20:44:27

nust_奔跑 发表于 2013-11-18 14:22 static/image/common/back.gif
速度放出教程啊!!!

最近一直在忙别的好多实验写了程序没空写教程

nust_奔跑 发表于 2013-11-20 22:07:56

swim 发表于 2013-11-20 20:44 static/image/common/back.gif
最近一直在忙别的好多实验写了程序没空写教程

放出程序也可以啊~
尽快到自动组网~~~
求学习~~~

wz10105031 发表于 2014-6-18 21:05:54

好深奥啊,初学者看不懂啊

Friday 发表于 2014-7-27 13:14:55

code届时能不能多一点啊多谢

弘毅 发表于 2014-7-27 13:44:54

Friday 发表于 2014-7-27 13:14 static/image/common/back.gif
code届时能不能多一点啊多谢

核心库升级了很多,修正了很多bug,code这两天IDE更新出来后,就会开始连载HoneyBee教程。。。

pandada 发表于 2014-7-28 14:16:33

很久没教程了。。。。。。。。。。。

fyof 发表于 2014-8-7 09:37:29

我想自己搭建一个服务器,然后移动端能控制电器。。话说没看到怎么网络通信的,还是小白....

kevin_huihui 发表于 2014-10-11 14:53:40

为什么要两块honeybee呢?

原野动力 发表于 2016-5-9 18:09:31

好资料,研究下,

原野动力 发表于 2016-5-9 18:14:57

好资料,研究下,
页: [1]
查看完整版本: HoneyBee入门教程--第四课--无线控制RGB LED灯 实验一