سلام ببخشید مشکل شما حل شد منم الان دقیقا مشکل شما رو دارم:(
نمایش نسخه قابل چاپ
سلام خیلی ممنون از راهنمایی تون با اینکه یکبار قبلا این فایل دیده بودم اما چیزی دستگیرم نشد اما مجددا باتوجه به تاکید شما برا خوندنه این فایل دوباره با دقت بیشتری خوندمش اتفاقا مشکلم حل شد چون از پروتکل I2C استفاده میکنم قسمت های مربوط به پروتکل های SPI و HSU را در برنامه کامنت کردم سپس کامپایل کردم کامپایلم شد بدونه خطا تشکر اول
در حال حاضر موضوعی که بهش بر خوردم این هست در این برنامه فقط کارت خوانده میشود اگر بخواهیم داخل کارت بنویسیم یا کارت و پاک کنیم (البته با توجه به data sheet کارت های مایفر) و ... باید از چه نمونه کد هایی استفاده کنیم آیا داخل همین Examples های خودته arduino چیزی پیدا میشه ممنون میشم راهنمایی بفر مایید تشکر دوم:)
واسه write کردن این لینک رو مطالعه کنید:
Read and Write on NFC Tags with an Arduino
ممنونم از اینکه خیلی سریع جواب دادید
یه چیزی یادم رفت بپرسم این بود که چه فرق ای بین مثال های قسمت PN532 و قسمت NDEF در نرم افزار arduino وجود داره؟
مثلا در کتابخونه NDEF مثال هایی از خواندن و نوشتن و پاک کردن وجود داره!
سوال اصلی بنده اینکه آیا با این نمونه کدها میشه یا NFC موبایل ارتباط گرفت ؟
البته هنوز سخت افزار مورد استفاده رو خریداری نکردم
BOARD ARDUINO UNO با این مدل میتونم با این ماژول ارتباط بگیرم؟
ببخشید خیلی حرف زدم:)
سخت افزارو خریدم برنامه رو ام ریختم فکرمیکنم همه چیزم درست باشه ولی تو پنجره سریال مانیتور فقط کلمه Hello نمایش داده میشه ؟؟؟؟؟
اینم کدی هست که ریختم
فایل پیوست
کدت داره یه جا گیر می کنه .
باید خط به خط بری جلو ببینی کجا داره گیر می کنه.
کدی که من میگم رو آپلود کن ببین TEST Print رو برات چاپ می کنه یا نه !
اگه چاپ کنه یعنی nfc.begin رو رد می کنه و تو به دست آوردن ورژن میمونه .کد:#include <Wire.h>
#include <PN532_I2C.h>
#include <PN532.h>
#include <NfcAdapter.h>
PN532_I2C pn532i2c(Wire);
PN532 nfc(pn532i2c);
void setup(void) {
Serial.begin(115200);
Serial.println("Hello!");
nfc.begin();
Serial.println("TEST Print!");
uint32_t versiondata = nfc.getFirmwareVersion();
if (! versiondata) {
Serial.print("Didn't find PN53x board");
while (1); // halt
}
// 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);
// Set the max number of retry attempts to read from a card
// This prevents us from waiting forever for a card, which is
// the default behaviour of the PN532.
nfc.setPassiveActivationRetries(0xFF);
// configure board to read RFID tags
nfc.SAMConfig();
Serial.println("Waiting for an ISO14443A card");
}
void loop(void) {
boolean success;
uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 }; // Buffer to store the returned UID
uint8_t uidLength; // Length of the UID (4 or 7 bytes depending on ISO14443A card type)
// Wait for an ISO14443A type cards (Mifare, etc.). When one is found
// 'uid' will be populated with the UID, and uidLength will indicate
// if the uid is 4 bytes (Mifare Classic) or 7 bytes (Mifare Ultralight)
success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, &uid[0], &uidLength);
if (success) {
Serial.println("Found a card!");
Serial.print("UID Length: "); Serial.print(uidLength, DEC); Serial.println(" bytes");
Serial.print("UID Value: ");
for (uint8_t i = 0; i < uidLength; i++)
{
Serial.print(" 0x"); Serial.print(uid[i], HEX);
}
Serial.println("");
// Wait 1 second before continuing
delay(1000);
}
else
{
// PN532 probably timed out waiting for a card
Serial.println("Timed out waiting for a card");
}
}
اگر رد نکنه یعنی تو nfc.begin میمونه .
به احتمال زیاد تو ورژن می مونه .
یه تست بگیر
پینهای i2c ات رو درست وصل کردی دیگه
جا به جا بزنی کار نمی کنه
بلاخره بعد از کلی گشتن جواب گرفتم دست همتون درد نکنه