Arduino读取RFID卡
thomas 于 2012-5-7 18:39 编辑
很随意的从tb买了个RF读卡模块,串口的,准备以后加在饮水机上或者改良一下考勤机。
公司的考勤卡都是125k的ID卡,应该可以直接用。
因为是成熟模块,过于简单,半小时就全部搞定了。
补充一个重要信息:由于RX TX口被占用,下一次更新程序时,可能需要断开模块的连接,否则可能会出现程序无法更新的错误。先上模块:
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-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);
}
}
复制代码读出数据输出
2012-5-7 17:05 上传
(1.95 KB)
说下以后的想法:考勤机,一个当日过生日的员工刷考勤卡上班时,如果能给他奏上一曲《生日快乐》,是多么惬意的事情。
饮水机,做成缩小版加油机形式,刷卡饮水,记录每人用水量。(看看谁喝水太少,就应该督促一下。这个纯属无聊,公司肯定不会收水费)
via - 极客工坊