Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino Mega2560 ENC28J60和RFID不工作_Arduino - Fatal编程技术网

Arduino Mega2560 ENC28J60和RFID不工作

Arduino Mega2560 ENC28J60和RFID不工作,arduino,Arduino,我是新来的,所以请不要为我的愚蠢而生气。我有一个项目,我必须读取RFID UID代码(这部分工作起来像个符咒),然后将其发送到连接到C#应用程序的数据库,然后接收响应(0或1)。我(目前)的问题是arduino不发送任何数据。也许有人能帮我 这是我的arduino代码: #包括 #include//RC522模块使用SPI协议 #包括//用于Mifare RC522设备的库 #包括 #包括 静态字节mymac[]={0x74,0xDD,0xDD,0x00,0x00,0x01}; 静态字节服务器

我是新来的,所以请不要为我的愚蠢而生气。我有一个项目,我必须读取RFID UID代码(这部分工作起来像个符咒),然后将其发送到连接到C#应用程序的数据库,然后接收响应(0或1)。我(目前)的问题是arduino不发送任何数据。也许有人能帮我

这是我的arduino代码:

#包括
#include//RC522模块使用SPI协议
#包括//用于Mifare RC522设备的库
#包括
#包括
静态字节mymac[]={0x74,0xDD,0xDD,0x00,0x00,0x01};
静态字节服务器_IP[]={192168,0102};
静态int服务器_端口=7745;
字节以太网::缓冲区[600];
//初始化DS1302(外部RTC)
//设置引脚:CE、IO、CLK
DS1302RTC(45,43,41);
//RTC模块的可选连接
#定义DS1302_接地_引脚39
#定义DS1302_VCC_引脚37
#定义公共阳极
#将LED_定义为高电平
#定义LED_关低
#定义红色3
#定义绿色5
#定义蓝色7
#定义继电器4
int successRead;//如果从读卡器成功读取,则保留变量整数
字节读卡[4];//存储从RFID模块读取的扫描ID
/*我们需要定义MFRC522的引脚并创建实例
*引脚布局应如下所示(在Arduino Mega 2560上):
*MOSI:插脚51/ICSP-4
*味噌:针脚50/ICSP-1
*SCK:插脚52/ICSP-3
*SS:引脚46(可配置)
*RST:引脚34(可配置)
*查看MFRC522库中的
*其他Arduinos的引脚配置。
*/
#定义SS_PIN1 46
#定义RST_引脚1 34
MFRC522 MFRC522(不锈钢管脚1,不锈钢管脚1);//创建MFRC522实例。
/////////////////////////////////////////设置///////////////////////////////////
无效设置(){
Serial.begin(9600);//初始化与PC的串行通信
串行打印(“MAC:”);
用于(字节i=0;i<6;++i){
串行打印(mymac[i],十六进制);
如果(i<5)
序列号。打印(“:”);
}
Serial.println();
if(ether.begin(以太网的大小::缓冲区,mymac,53)=0){
Serial.println(“无法访问以太网控制器”);
//而(1),;
}else Serial.println(“以太网控制器已初始化”);
如果(!ether.dhcpSetup()){
Serial.println(“未能从DHCP获取配置”);
//而(1),;
}else Serial.println(“DHCP配置完成:”);
ether.printIp(“我的IP:,ether.myip”);
ether.printIp(“Netmask:,ether.Netmask”);
以太打印IP(“GW IP:,以太打印IP”);
ether.printIp(“DNS IP:,ether.dnsip”);
Serial.println();
ether.copyIp(ether.hisip,服务器IP);
ether.hisport=服务器\端口;
//Arduino引脚配置
引脚模式(红色LED,输出);
引脚模式(绿色LED,输出);
引脚模式(蓝色LED,输出);
pinMode(继电器、输出);
digitalWrite(继电器,低);//确保车门已锁定
digitalWrite(红色发光二极管,发光二极管熄灭);//确保发光二极管熄灭
数码写入(绿色LED,LED_关闭);//确保LED关闭
digitalWrite(蓝色发光二极管,发光二极管熄灭);//确保发光二极管熄灭
//协议配置
SPI.begin();//MFRC522硬件使用SPI协议
mfrc522.PCD_Init();//初始化mfrc522硬件
mfrc522.PCD_SetAntennaGain(mfrc522.RxGain_max);//将天线增益设置为最大-这将增加读取距离
//激活RTC模块
数字写入(DS1302_接地_引脚,低电平);
引脚模式(DS1302_接地_引脚,输出);
数字写入(DS1302_VCC_引脚,高电平);
引脚模式(DS1302_VCC_引脚,输出);
RTC.haltRTC(1);//时钟启用(1),时钟禁用(0)
RTC.writeEN(0);//写保护关闭(1),写保护打开(0)
//时间设定
//设定时间(1,19,0,16,122014);
//时间t=现在();
//RTC.set(t);
延迟(200);
}
/////////////////////////////////////////主回路///////////////////////////////////
空循环(){
ether.packetLoop(ether.packetReceive());
做{
successRead=getID();//从读卡器读取时,将successRead设置为1,否则为0
normalModeOn();//正常模式,蓝色电源指示灯亮起,所有其他指示灯熄灭
}
while(!successRead);//如果读取不成功,程序将无法继续执行
开门();
}
/////////////////////////////////////////获取PICC的UID///////////////////////////////////
int getID(){
//为阅读PICC做好准备
如果(!mfrc522.PICC_IsNewCardPresent()){//如果将新PICC放置到RFID读卡器继续
返回0;
}
如果(!mfrc522.PICC_ReadCardSerial()){//自PICC放置后获取序列并继续
返回0;
}
//Serial.println(“已扫描PICC的UID:”);
对于(int i=0;i<4;i++){//
读卡器[i]=mfrc522.uid.uidByte[i];
串行打印(读卡[i],十六进制);
}
Serial.println(读卡[4],十六进制);
字符字符串_temp[7];
dtostrf(读卡[2],4,2,字符串温度);
藏匿;
字节sd=stash.create();
隐藏打印(字符串温度);
隐藏。打印('\r');
保存();
储藏:准备(PSTR($H),sd);
ether.tcpSend();
Serial.println(“数据包已发送!”);
Serial.println(“”);
mfrc522.PICC_HaltA();//停止读取
返回1;
}
////////////////////////////////////////正常模式LED///////////////////////////////////
void normalModeOn(){
digitalWrite(蓝色发光二极管,发光二极管亮起);//蓝色发光二极管亮起,即读卡
digitalWrite(红色发光二极管,发光二极管熄灭);//确保红色发光二极管熄灭
数码写入(绿色LED,LED_关闭);//确保绿色LED关闭
digitalWrite(继电器,低);//确保车门已锁定
}
/////////////////////////////////////////开门///////////////////////////////////
void openDoor(){
数码写入(蓝色发光二极管,发光二极管关闭);//关闭蓝色发光二极管
数码写入(红色发光二极管,发光二极管关闭);//关闭红色发光二极管
digitalWrite(绿色发光二极管,发光二极管打开);//打开绿色发光二极管
数字写入(继电器,高);//开门!
延迟(1000);//保持门锁打开几秒钟
数字写入(继电器,低);//重新锁上门
延迟(1000);//保持绿色LED亮起2秒以上
}
/////////////////////////////////////////访问失败///////////////////////////////////
作废失败(){
数码写入(绿色LED,LED_关闭);//确保绿色LED关闭
digitalWrite(蓝色发光二极管,发光二极管关闭);//确保b