首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用RFID - Arduino Uno的OLED显示屏上的卡详细信息

使用RFID - Arduino Uno的OLED显示屏上的卡详细信息
EN

Stack Overflow用户
提问于 2019-04-21 18:49:47
回答 1查看 116关注 0票数 0

我还在学习诀窍,所以如果答案是显而易见的,请原谅我。我用的是Arduino Uno和RC522 RFID卡读卡器。我的目标是扫描读卡器上的一张卡,并让I2C OLED显示屏显示扫描过他们卡的人的姓名。这是我使用的程序的代码-

代码语言:javascript
复制
#include <U8glib.h>
#include <LiquidCrystal.h>
#include <RFID.h>
#include <SPI.h>
#define SS_PIN 10
#define RST_PIN 9
RFID rfid(SS_PIN, RST_PIN); 
int serNum[5];
String cardno;
int interval = 15000; // millisec 
long now = 0;
long lasttime = millis();

// change Reader ID to your name 
String readerID = "CCE3050";

void setup() { 
  Serial.begin(9600); 
  SPI.begin(); 
  rfid.init();
}

void loop() {
  now = millis();
  if (now > lasttime + interval) {
    lasttime = now; 
    Serial.print(readerID); 
    Serial.print(":"); 
    Serial.println("I am alive");
  }

  if (rfid.isCard()) {
    if (rfid.readCardSerial()) { 
      lasttime = now;

      cardno = String(rfid.serNum[0]) +
               String(rfid.serNum[1]) +
               String(rfid.serNum[2]) + 
               String(rfid.serNum[3]) + 
               String(rfid.serNum[4]);
      
      Serial.print(readerID); 
      Serial.print(":"); 
      Serial.println(cardno);
    } 
  }

  delay(5000); 
}

到目前为止,每次标记一张卡时,卡号都会显示在串行监视器上。但是,我想为该卡指定一个名称,并在将该卡标记到读卡器时将该名称显示在OLED上。有没有办法做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2019-04-21 20:45:39

我建议创建一个struct来保存id及其相关名称。

代码语言:javascript
复制
typedef struct { 
  String id; 
  String name; 
} User;

创建一个数组来容纳该结构的多个实例。

代码语言:javascript
复制
User users[MAX_USER_NUM];    // define the size

User user1 = {"123", "A"};   // {"id", "name"}
users[0] = user1;

User user2 = {"234", "B"};
users[1] = user2;

User user3 = {"345", "C"};
users[2] = user3;

然后,可以通过将id传递给函数来检索用户名,如下所示。

代码语言:javascript
复制
String lookup(String id) {
  for (int i = 0; i < MAX_USER_NUM; i++) {
    if (users[i].id == id) {
      return users[i].name;
    }
  }
  return "";
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55782064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档