Arduino读取RFID卡

thomas 于 2012-5-7 18:39 编辑



很随意的从tb买了个RF读卡模块,串口的,准备以后加在饮水机上或者改良一下考勤机。

公司的考勤卡都是125k的ID卡,应该可以直接用。





因为是成熟模块,过于简单,半小时就全部搞定了。



补充一个重要信息:由于RX TX口被占用,下一次更新程序时,可能需要断开模块的连接,否则可能会出现程序无法更新的错误。先上模块:

125k.jpg

2012-5-7 17:04 上传
(28.63 KB)



(公司名隐去)



说明:



管脚定义:(从上到下)



GND

VCC(3-5V)

天线1

天线2

EN卡有效信号输出

TXD串口输出

RXD串口输入

性能参数:



输入电压:3~5.5V

输入电流:刷卡电流<25mA

通讯格式:9600-8-1串口输出卡号

(格式:1bit:start、8bit:data、1bit:stop)



有效刷卡高度:3-20cm(视天线、卡和周围环境而定)

使用环境:-25~70摄氏度

尺寸:28mm*20mm(2010最mini版)

发货清单:模块一个,天线一个


2012-05-07_16-47-45_181.jpg

2012-5-7 17:02 上传
(88.96 KB)





Arduino连接方式:



RF模块 Arduino

1脚 GND

2脚 +5v

3脚天线

4脚天线

5脚 D2

6脚 RX0

7脚 TX0



测试代码
//RFID test by Thomas 2012.05.07
int incomingByte = 0; // for incoming serial data
const int ENPin = 2; // the number of the EN pin
int ENState = 1;//default EN state was HIGH

void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
pinMode(ENPin, INPUT);
}

void loop() {

// read the state of the EN value:
ENState = digitalRead(ENPin);

// check if the EN is LOW,the output the data.
if (ENState == LOW&&Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();
// say what you got:
Serial.print("I received: ");
Serial.println(incomingByte, DEC);
}

}

复制代码读出数据输出


out1.gif

2012-5-7 17:05 上传
(1.95 KB)







说下以后的想法:考勤机,一个当日过生日的员工刷考勤卡上班时,如果能给他奏上一曲《生日快乐》,是多么惬意的事情。

饮水机,做成缩小版加油机形式,刷卡饮水,记录每人用水量。(看看谁喝水太少,就应该督促一下。这个纯属无聊,公司肯定不会收水费)
via - 极客工坊

标签: Arduino教程