2014-9-18 20:24:09 [显示全部楼层]
5659浏览
查看: 5659|回复: 3

买了个8*8 LED RGB Matrix想结合红外发送跟接收一起用但是不...

[复制链接]
这个是那[size=1.6em]8*8 LED RGB Matrix的链接https://wiki.dfrobot.com.cn/index.php/(SKU:DFR0202)8*8_LED_RGB_Matrix#.E5.9C.A8.E6.8C.87.E5.AE.9A.E5.9B.BE.E5.B1.82.E4.B8.8A.E5.85.A8.E5.B1.8F.E6.98.BE.E7.A4.BA.E5.BD.A9.E8.99.B9
下面是我写的程序

#include <IRremote.h>
#include <rgb_matrix.h>
#include <SPI.h>

#define N_X 1
#define N_Y 1
#define DATA_PIN  11
#define CLK_PIN   13
#define LATCH_PIN 8
rgb_matrix M = rgb_matrix(N_X, N_Y, DATA_PIN, CLK_PIN, LATCH_PIN);

IRsend irsend;
int flag=1;
int RECV_PIN = 12;
IRrecv irrecv(RECV_PIN);
decode_results results;
int K=1;


void setup()
{
// Serial.begin(9600);
Serial.begin(115200);
  M.set_cur(0,0);
  M.put_char(0,0,'G',MULTIPLY,GREEN,TOP_LAYER);
}

void hook(void)
{
  if (K==2) M.put_char(0,0,'R',COVER,GREEN+RED,TOP_LAYER);
  if (K==1) M.put_char(0,0,'G',COVER,GREEN,TOP_LAYER);
}

void send()
{ static unsigned long time=millis();
  while(flag)
  {for (int i = 0; i < 3; i++)
    {
      irsend.sendSony(1, 12);
      delay(40);}
      time=millis();
      if(time>150) flag=0;

   }
}
void receive()
{

   irrecv.enableIRIn();
   static unsigned long time = millis();
   static unsigned int sta=0,newsta=0;
  while(!flag)
  {
    if (irrecv.decode(&results))
  {
    Serial.print("Value:");
    Serial.println(results.value, HEX);
    irrecv.resume(); // Receive the next value
    sta++;                        //如果收到红外码,则sta加一,否则不进行任何操作
  }
  if(millis()-time>=500)        //每隔500ms统计一次sta的值,类似于测频率
  {
    time = millis();
    newsta = sta;
    sta=0;
    Serial.print("Count:");
    Serial.println(newsta);

    if(newsta>=1) K=results.value;   
    else K=1;

    if(time>600)
    flag=1;
  }
}

}
void loop()
{ send();
  receive();
  M.display(hook);
}
现在的问题是send()和receive()都只能执行一次然后就一直陷入M.display()死循环,求大神指教,怎么跳出循环,让三个函数轮流执行,又不影响RGB显示效果

janwu  学徒
 楼主|

发表于 2014-9-18 22:19:37

求回复
回复

使用道具 举报

janwu  学徒
 楼主|

发表于 2014-9-19 14:16:00

:'(:'(:'(:'(
回复

使用道具 举报

janwu  学徒
 楼主|

发表于 2014-9-19 18:30:00

没人会吗。。。。。。。。。。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail