Модуль RFID PN532 NFC V3 дозволяє не тільки зчитувати та записувати інформацію RFID-карт Mifare , міток та брелків що працюють на частоті 13,56 МГц , але й обмінюється даними з іншими пристроями, що підтримують технологію NFC (Near Field Communication). Модуль заснований на мікросхемі PN532 та підтримує бездротові протоколи ISO14443 Type A/B. Його можна використовувати в системах контролю доступу до приміщень, охоронних систем, у складі розумного будинку, системах позиціонування роботів і т.д. Для підключення модуля використовують інтерфейси UART, I2C або SPI. При використанні сигналу переривання при підключенні модуля використовуються всього три контакти контролера. /li>
Напруга живлення: 3.3-5В Максимальний споживаний струм: 150 мА Споживаний струм у режимі очікування: 100 мА Споживаний струм у режимі зчитування: 120 мА Споживаний струм у режимі запису: 120 мА Дальність зчитування: 5 - 7 см Антена: вбудована, на платі Розміри: 42.7 х 40.4 мм Підтримка інтерфейсів: I2C / SPI / HSU (High Speed UART - 115200 kbps) Режими роботи, що підтримуються:
- RFID (читання/запис)
- P2P з'єднання
- NFC для роботи зі смартфонами на платформі Android
< h3> Підтримка чіпів:
- ISO 14443 Type A - NXP Mifare 1k, 4k, Ultralight, Desfire
- ISO 14443 Type B
- ISO/IEC 14443-4-сумісні чіпи
- FeliCa
- Jewel
- TopaZ
Модуль підтримує роботу з кількох інтерфейсів. для того, щоб підключити модуль по шині I2C, змініть положення перемикача згідно з таблицею біля нього.
Підключення за I2C(для Arduino):
- SDA - до висновку A4
- SCL - до висновку A5
- VCC - 5V
- GND — GND
- IRQ — до цифрового виводу 2
- RSTO — до цифрового виводу 3
Підключення по SPI(для Arduino):
- SS - 10
- MOSI - 11
- MISO - 12
- SCK - 13
- VCC - 5V
- GND - GND
Посилання:
Даташит на мікросхему
Бібліотека Adafruit PN532
Бібліотека Adafruit NFCShield I2C< br>
Приклад коду Arduino:
#include // підключаємо бібліотеку для роботи з I2C#include // підключаємо бібліотеку для роботи з модулем#define PN532_IRQ (2) // вказуємо висновок, до якого підключений контакт IRQ# define PN532_RESET (3) // вказуємо висновок, до якого підключений контакт RSTAdafruit_PN532 nfc(PN532_IRQ, PN532_RESET); // призначаємо ім'я модуля void setup() { Serial.begin(115200); // ініціюємо передачу даних у монітор послідовного порту на швидкості 115200 бод Serial.println("Hello!"); // Виводимо в монітор порту текст nfc.begin(); // ініціюємо роботу з модулем uint32_t versiondata = nfc.getFirmwareVersion(); // зчитуємо версію прошивки модуля змінну if (! versiondata) { // якщо змінна порожня, то Serial.print("Didn't find PN53x board"); // Виводимо текст монітор порту while (1); // перериваємо подальше виконання блоку setup 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); // виводимо кому і версію прошивки після коми nfc.setPassiveActivationRetries(0xFF); // вказуємо кількість спроб зчитування карти nfc.SAMConfig(); // налаштовуємо модуль для читання RFID-міток Serial.println("Waiting for an ISO14443A card"); // Виводимо текст в монітор порту void loop () { boolean success; // задаємо змінну для зчитування номера картки uint8_t uid[] = {0, 0, 0, 0, 0, 0, 0}; // задаємо змінну зберігання номера ліченої карти uint8_t uidLength; // Довжина номера картки (4 або 7 байт залежно від типу картки) 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