RFID-RC522 与Arduino的连接

一、前几天在某宝上刚买了个RFID-RC522  ,目标是复制我的门禁卡(看样子没多大希望了)。
二、各种百度各种谷歌都没找到与Arduino的连接方式。

so,分享下我的连接方式,与大家共同进步。。。。

材料:
1、Arduino Uno R3
2、RFID-RC522
3、连接线7根

 

最下面一根红色为3.3v的电源。
最上面的为SDA,其它照图连接就可以了。

 

下面是测试代码:

  1 #include <SPI.h>
  2  
  3 #define uchar unsigned char
  4 #define uint unsigned int
  5  
  6 //数据数组的最大长度 
  7 #define MAX_LEN 16
  8  
  9 /
 10 //set the pin设置引脚
 11 /
 12 const int chipSelectPin = 10;    //SDA引脚片选引脚
 13 const int NRSTPD = 5;            //RST引脚
 14  
 15 //MF522 命令位
 16 #define PCD_IDLE 0x00             //取消当前命令不行动
 17 #define PCD_AUTHENT 0x0E         //验证密码的钥匙
 18 #define PCD_RECEIVE 0x08         //接收数据
 19 #define PCD_TRANSMIT 0x04        //发送数据
 20 #define PCD_TRANSCEIVE 0x0C        //发送和接收数据
 21 #define PCD_RESETPHASE 0x0F        //重置
 22 #define PCD_CALCCRC 0x03        //CRC校验和的计算
 23  
 24 //Mifare_One卡的命令位
 25 #define PICC_REQIDL 0x26        //在天线区域搜索不进入睡眠模式的卡 
 26 #define PICC_REQALL 0x52         //搜索天线区域中的所有卡 
 27 #define PICC_ANTICOLL 0x93        //防止冲突 
 28 #define PICC_SElECTTAG 0x93     //选择卡
 29 #define PICC_AUTHENT1A 0x60     //验证A密码密钥
 30 #define PICC_AUTHENT1B 0x61     //验证B密码密钥
 31 #define PICC_READ 0x30            //
 32 #define PICC_WRITE 0xA0            //
 33 #define PICC_DECREMENT 0xC0     //扣除值 
 34 #define PICC_INCREMENT 0xC1     //装载值
 35 #define PICC_RESTORE 0xC2         //还原数据到缓冲区
 36 #define PICC_TRANSFER 0xB0        //保存数据到缓冲区
 37 #define PICC_HALT 0x50             //睡眠模式
 38  
 39 
 40 //通信时MF522的返回值 
 41 #define MI_OK 0
 42 #define MI_NOTAGERR 1
 43 #define MI_ERR 2
 44  
 45 //------------------MFRC522 注册 ---------------
 46 //Page 0:命令和状态
 47 #define Reserved00 0x00             //保留将来之用
 48 #define CommandReg 0x01             //启动和停止命令的执行
 49 #define CommIEnReg 0x02             //中断请求传递的使能和禁能控制位。
 50 #define DivlEnReg 0x03                 //中断请求传递的使能和禁能控制位。
 51 #define CommIrqReg 0x04             //包含中断请求标志
 52 #define DivIrqReg 0x05                //包含中断请求标志
 53 #define ErrorReg 0x06                 //错误标志,指示执行行的上个命令的错误状态
 54 #define Status1Reg 0x07             //包含通信的状态标志
 55 #define Status2Reg 0x08             //包含接收器和发射器的状态标志
 56 #define FIFODataReg 0x09            //64字节FIFO缓冲器的输入输出
 57 #define FIFOLevelReg 0x0A            //指示FIFO中存储的字节数
 58 #define WaterLevelReg 0x0B            //定义FIFO下溢和上溢报警的FIFO深度。
 59 #define ControlReg 0x0C                //不同的控制寄存器
 60 #define BitFramingReg 0x0D            //面向位的帧调节
 61 #define CollReg 0x0E                //RF接口上检测到的第一个位冲突的位的位置
 62 #define Reserved01 0x0F                //保留将来之用
 63 //Page 1:控制 
 64 #define Reserved10 0x10                //保留将来之用
 65 #define ModeReg 0x11                //定义发射和接收的常用模式
 66 #define TxModeReg 0x12                //定义发射过程的数据传输速率
 67 #define RxModeReg 0x13                //定义接收过程中的数据传输速率
 68 #define TxControlReg 0x14            //控制天线驱动管脚TX1和TX2的逻辑特征
 69 #define TxAutoReg 0x15                //控制天线驱动的设置
 70 #define TxSelReg 0x16                //选择天线驱动器的内部源
 71 #define RxSelReg 0x17                //选着内部的接收器设置
 72 #define RxThresholdReg 0x18            //选择位译码器的阀值
 73 #define DemodReg 0x19                //定义解调器的设置
 74 #define Reserved11 0x1A                //保留将来之用
 75 #define Reserved12 0x1B                //保留将来之用
 76 #define MifareReg 0x1C                //控制ISO 14443/MIFARE 模式106kbit/s的通信
 77 #define Reserved13 0x1D                //保留将来之用
 78 #define Reserved14 0x1E                //保留将来之用
 79 #define SerialSpeedReg 0x1F            //选择串行UART接口的速率
 80 //Page 2:发生器
 81 #define Reserved20 0x20                //保留将来之用
 82 #define CRCResultRegM 0x21            //显示CRC计算的实际MSB和LSB值(MSB)
 83 #define CRCResultRegL 0x22            //显示CRC计算的实际MSB和LSB值(LSB)
 84 #define Reserved21 0x23                //保留将来之用
 85 #define ModWidthReg 0x24            //控制ModWidth的设置
 86 #define Reserved22 0x25                //保留将来之用
 87 #define RFCfgReg 0x26                //配置接受器增益
 88 #define GsNReg 0x27                    //选择天线驱动器管脚TX1和TX2的调制电导
 89 #define CWGsPReg 0x28                //选择天线驱动器管脚TX1和TX2的调制电导
 90 #define ModGsPReg 0x29                //选择天线驱动器管脚TX1和TX2的调制电导
 91 #define TModeReg 0x2A                //定义内部定时器的设置A
 92 #define TPrescalerReg 0x2B            //定义内部定时器的设置B
 93 
  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值