Hallo Arduino Forum User
Hab versprochen einem Freund zu helfen und bin mangels Hardware nicht in der Lage meine Vermutungen zu testen.
Hat jemand schon erfolgreich den orginal Arduino UNO mit dem orginal Arduino Ethernet Shield und dem NFC Shield v2.0 von Seedstudio zusammen zum laufen gebracht? (am NFC ist SS auf Pin 9 statt Pin 10 modifiziert)
http://www.seeedstudio.com/depot/NFC-Shield-V20-p-1370.html
Ethernet Shield und NFC Shield einzeln am Arduino funktionieren.
Zusammen funktioniert die Initialisation des NFC nicht (Ethernet wird vor NFC initialisiert)
#include <SPI.h>
#include <PN532_SPI.h>
#include <PN532.h>
#include <Ethernet.h>
#define ETH_SS 10
#define NFC_SS 9
PN532_SPI pn532spi(SPI, NFC_SS);
PN532 nfc(pn532spi);
byte mac[] = { [mac address gelöscht für Forum] }; // MAC address
IPAddress ip(192,168,0,5); // Static IP if DHCP fails
IPAddress server(192,168,0,10); // IP for the WebServer
int port = 8080;
EthernetClient client;
void setup() {
/* Start serial output */
Serial.begin(115200);
Serial.println("Arduino Powered On");
pinMode(ETH_SS, OUTPUT);
pinMode(NFC_SS, OUTPUT);
digitalWrite(ETH_SS, HIGH);
digitalWrite(NFC_SS, HIGH);
Serial.println("Init Ethernet");
initEthernet();
delay(500);
Serial.println("Init NFC");
initNFC();
}
void initEthernet() {
//Serial.println("Search DHCP server");
//if (Ethernet.begin(mac) == 0) {
// Serial.println("Failed to configure Ethernet using DHCP");
// no point in carrying on, so do nothing forevermore:
// try to congifure using IP address instead of DHCP:
digitalWrite(ETH_SS, LOW);
digitalWrite(NFC_SS, HIGH);
Ethernet.begin(mac, ip);
digitalWrite(ETH_SS, HIGH);
//}
Serial.print("Arduino IP is ");
Serial.println(Ethernet.localIP());
}
boolean initNFC() {
digitalWrite(ETH_SS, HIGH);
digitalWrite(NFC_SS, LOW);
nfc.begin();
digitalWrite(NFC_SS, HIGH);
uint32_t versiondata = nfc.getFirmwareVersion();
if (! versiondata) {
Serial.println("Didn't find PN53x board ... PANIC, program stopped!!");
} else {
// Got ok data, print it out!
Serial.print("Found chip PN5"); Serial.println((versiondata>>24) &
0xFF, HEX);
Serial.print("Firmware ver. "); Serial.print((versiondata>>16) & 0xFF, DEC);
Serial.print('.'); Serial.println((versiondata>>8) & 0xFF, DEC);
// configure board to read RFID tags
nfc.SAMConfig();
Serial.println("Waiting for an ISO14443A Card ...");
}
}
String getUnlockCode() {
return httpCall("DoorManUnlock");
}
...
void loop() {...}
Es wird
Arduino IP is ......
Didn't find PN53x board ... PANIC, program stopped!!
ausgegeben.
Die Reihenfolge der Shields auf dem Arduino ist egal.
Ich tippe mal auf vollem RAM. Was sagt Ihr dazu?
Viele Grüße Uwe