极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8486|回复: 0

如何一块arduino卡同时读取2个rfid设备的信息

[复制链接]
发表于 2013-5-16 17:30:38 | 显示全部楼层 |阅读模式
现有1块arduino和2个rfid读写器,想通过SoftwareSerial进行通讯,下面是测试用的代码。但问题是只有个读写器有数据输出,另外一个没有输出

  1. #include <SPI.h>
  2. #include <SoftwareSerial.h>

  3. SoftwareSerial rfidSerial1(8,9);
  4. SoftwareSerial rfidSerial2(2,3);
  5. int data1[4];
  6. int data2[4];
  7. int in1 = 0;
  8. int in2 = 0;
  9. int key = 0;

  10. String readString = String(30);

  11. void setup(){
  12.   Serial.begin(9600);
  13.   //  rfidSerial1.begin(9600);
  14.   //  rfidSerial2.begin(9600);
  15.   //  rfidSerial1.listen();
  16.   //  rfidSerial2.listen();
  17.   //  delay(2);
  18.   //  rfidSerial1.write(0x02);
  19.   //  rfidSerial2.write(0x02);
  20.   Serial.println("please read rfid");
  21. }

  22. void loop(){
  23.   Serial.print("rfid1=");
  24.   Serial.println(rfidRead1());
  25.   Serial.print("rfid2=");
  26.   Serial.println(rfidRead2());
  27.   delay(1000);
  28. }

  29. int rfidRead1(){
  30.   rfidSerial1.begin(9600);
  31.   rfidSerial1.listen();
  32.   delay(2);
  33.   rfidSerial1.write(0x02);
  34.   if(rfidSerial1.available()>0)
  35.   {
  36.     for (int i = 0; i<=3; i++){
  37.       byte b = rfidSerial1.read();
  38.       data1[i] = int(b);
  39.     }
  40.     return (data1[2]);

  41.   }
  42.   in1 = data1[2];
  43. }

  44. int rfidRead2(){
  45.   rfidSerial1.begin(9600);
  46.   rfidSerial1.listen();
  47.   delay(2);
  48.   rfidSerial1.write(0x02);
  49.   if(rfidSerial2.available()>0)
  50.   {
  51.     for (int m = 0; m<=3; m++){
  52.       byte k = rfidSerial2.read();
  53.       data2[m] = int(k);
  54.     }
  55.     return (data2[2]);

  56.   }
  57.   in2 = data2[2];
  58. }
复制代码
回复

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-20 12:02 , Processed in 0.041600 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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