极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10907|回复: 3

EtherCard 和 IRremote 同时使用,UNO,串口检测空白,这个是库文件冲突吗?

[复制链接]
发表于 2014-5-19 15:06:53 | 显示全部楼层 |阅读模式
EtherCard 和 IRremote 同时使用,UNO,串口检测空白,无任何内容!
EtherCard 接线是按照:
这个图来接。

IRremote 接受器接线是 D3。我的构想是:红外接收头,收到按下遥控的数据,然后提交给EtherCard发送到网站,单独分别使用EtherCard或者IRremote测试都没有问题,但整合在一起时就出现问题了!是不是这算是库文件冲突吗?

代码内容如下:

  1. //>>> The latest version of this code can be found at https://github.com/jcw/ !!

  2. #include <IRremote.h>

  3. #include <EtherCard.h>
  4. // ethernet interface mac address, must be unique on the LAN
  5. static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };

  6. byte Ethernet::buffer[700];
  7. static uint32_t timer;
  8. const char UserCode[] = "xxxx";
  9. const char PassWord[] = "xxxx";
  10. const char website[] = "www.xxxx.com";
  11. const char urlbuf[] = "/Index/xxxx";

  12. int RECV_PIN = 3;
  13. IRrecv irrecv(RECV_PIN);
  14. decode_results results;
  15. void setup () {
  16.   Serial.begin(57600);
  17.   Serial.println("\n[webClient]");
  18.   if (!ether.begin(sizeof Ethernet::buffer, mymac,10))
  19.     Serial.println( "Failed to access Ethernet controller");
  20.   if (!ether.dhcpSetup())
  21.     Serial.println("DHCP failed");

  22.   ether.printIp("IP:  ", ether.myip);
  23.   ether.printIp("GW:  ", ether.gwip);  
  24.   ether.printIp("DNS: ", ether.dnsip);  

  25.   if (!ether.dnsLookup(website))
  26.     Serial.println("DNS failed");
  27. while (ether.clientWaitingGw()){
  28.     ether.packetLoop(ether.packetReceive());
  29.     Serial.println("Waitting for getaway...");
  30. }
  31.   irrecv.enableIRIn();
  32.   ether.printIp("SRV: ", ether.hisip);
  33. }
  34. // called when the client request is complete
  35. static void my_callback (byte status, word off, word len) {
  36.   Serial.println(">>>");
  37.   Ethernet::buffer[off+300] = 0;
  38. Serial.print((const char*) Ethernet::buffer + off);
  39.   Serial.println("...");
  40. }
  41. void dump(decode_results *results) {
  42.   int count = results->rawlen;
  43.   String Codes = "user=";
  44.   Codes += UserCode;
  45.   Codes += ",passw=" ;
  46.   Codes += PassWord;
  47.   Codes += ";len=" + count ;
  48.   Codes +=  ";code=";
  49.   Serial.print("Raw (");
  50.   Serial.print(count, DEC);
  51.   Serial.print("): ");

  52.   for (int i = 0; i < count; i++) {
  53.     char str[8];
  54.     if ((i % 2) == 1) {
  55.       dtostrf(results->rawbuf[i]*USECPERTICK,8,0,str);
  56.     }
  57.     else {
  58.       dtostrf((int)  results->rawbuf[i]*USECPERTICK,8,0,str);
  59.     }
  60.     Serial.print(str);
  61.     Serial.print(" ");
  62.     Codes += str;
  63.   }
  64.   Codes += ";";
  65.   char poststr[Codes.length()];
  66.   char apikey[]="fuck";
  67.   for(int i=0;i<=Codes.length();i++) poststr[i]=Codes.charAt(i);
  68.   ether.httpPost(urlbuf,website,apikey,poststr,my_callback);
  69. }
  70. void loop () {
  71.   ether.packetLoop(ether.packetReceive());

  72.   if (irrecv.decode(&results)) {
  73.    dump(&results);
  74.   }
  75.   irrecv.resume();

  76. }
复制代码
回复

使用道具 举报

发表于 2015-1-20 16:48:31 | 显示全部楼层
我也越到这个问题了 好几天 还没有解决
回复 支持 反对

使用道具 举报

发表于 2015-1-20 16:51:02 | 显示全部楼层
#include <IRremote.h>默认 int RECV_PIN = 3;  为发射IRsend   你修改 RECV_PIN   再试试
回复 支持 反对

使用道具 举报

发表于 2015-1-20 21:11:51 | 显示全部楼层
28J60 不需要接INT 2 和 RESET
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-17 09:57 , Processed in 0.050870 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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