完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#include RFID rfid(10,5); //D10--读卡器MOSI引脚、D5--读卡器RST引脚 int led = 9; int relay=7; bool state=true; void setup() { Serial.begin(9600); SPI.begin(); rfid.init(); pinMode(led, OUTPUT); //设置引脚的模式:输出模式还是输入模式,括号里逗号之前是对应设置的是引脚,逗号后面是设置输出还是输入,输入模式INPUT,引脚输出OUTPUT。 pinMode(relay,OUTPUT); digitalWrite(relay,HIGH);//做输出端口,则写:digitalWrite(,);做输入端口,则读 digitalRead(,);digitalWrite(theRedLed,HIGH)引脚输出高电平,digitalWrite(theRedLed,LOW)引脚输出低电平。 } void loop() { unsigned char type[MAX_LEN]; //找卡 if(rfid.isCard()) { Serial.println("Find the card!"); ; //Show card type ShowCardType(type); //读取卡序列号 if(rfid.readCardSerial()) { Serial.print("The card's number is : "); Serial.print(rfid.serNum[0],HEX); Serial.print(rfid.serNum[1],HEX); Serial.print(rfid.serNum[2],HEX); Serial.print(rfid.serNum[3],HEX); Serial.print(rfid.serNum[4],HEX); Serial.println(" "); ShowUser(rfid.serNum); } //选卡,可返回卡容量(锁定卡片,防止多数读取),去掉本行将连续读卡 Serial.println(rfid.selectTag(rfid.serNum)); } rfid.halt(); } void ShowCardType( unsigned char* type) { Serial.print("Card type: "); if(type[0]==0x04&&type[1]==0x00) Serial.println("MFOne-S50"); else if(type[0]==0x02&&type[1]==0x00) Serial.println("MFOne-S70"); else if(type[0]==0x44&&type[1]==0x00) Serial.println("MF-UltraLight"); else if(type[0]==0x08&&type[1]==0x00) Serial.println("MF-Pro"); else if(type[0]==0x44&&type[1]==0x03) Serial.println("MF Desire"); else Serial.println("Unknown"); } void ShowUser( unsigned char* id) { if(id[0]==0xB0 && id[1]==0x7B && id[2]==0x2A &&id[3]==0x33 &&id[4]==0xD2 ) { Serial.println("HelloMary!"); state=RelayStatus(state); } else if(id[0]==0x08 && id[1]==0xC6 && id[2]==0x26 &&id[3]==0xA4 &&id[4]==0x80 ) { Serial.println("Hello MicroHao!"); state=RelayStatus(state); } else if(id[0]==0x25 && id[1]==0x96 && id[2]==0x70 &&id[3]==0x51 &&id[4]==0x92 ) { Serial.println("Hello Tom!"); state=RelayStatus(state); } else{ Serial.println("Hello unkown guy!"); BlinkLED(); } } bool RelayStatus(bool status) { if(status) { digitalWrite(led, HIGH); // turnthe LED on (HIGH is the voltage level) digitalWrite(relay,LOW); return false; } digitalWrite(led, LOW); // turnthe LED on (HIGH is the voltage level) digitalWrite(relay,HIGH); return true; } void BlinkLED() { digitalWrite(relay,HIGH); for(int i=0;i<3;i++) { digitalWrite(led, HIGH); // turnthe LED on (HIGH is the voltage level) delay(1000); digitalWrite(led, LOW); // turnthe LED off by making the voltage LOW delay(1000); } } //视频或详细问题加QQ2412938013 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
WIO Terminal +MCP2515 实现车辆OBD的速度监控
9968 浏览 0 评论
60659 浏览 77 评论
5696 浏览 3 评论
一块扩展板完成Arduino的10类37项实验(代码+图形+仿真)
33259 浏览 219 评论
9841 浏览 0 评论
221浏览 1评论
2161浏览 1评论
请教:esp32中用u8g2显示shtc3传感器数据到i2c液晶屏,显示不稳定的问题
934浏览 1评论
1050浏览 1评论
1430浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-19 23:33 , Processed in 0.413314 second(s), Total 41, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号